# Copyright (C) 2026 Kija # This file is distributed under the GPL-2.0-or-later. msgid "" msgstr "" "Project-Id-Version: A11yFix for WCAG 0.1.0\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/a11yfix\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "POT-Creation-Date: 2026-03-11T22:30:08+01:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" #. Plugin Name of the plugin #: a11yfix.php #: a11yfix.php:127 #: a11yfix.php:128 #: a11yfix.php:288 msgid "A11yFix for WCAG" msgstr "" #. Plugin URI of the plugin #: a11yfix.php msgid "https://in3.dev/a11yfix/" msgstr "" #. Description of the plugin #: a11yfix.php msgid "Plugin to crawl internal URLs and test them for accessibility issues, storing results locally in the browser." msgstr "" #. Author of the plugin #: a11yfix.php msgid "Kija" msgstr "" #: a11yfix.php:151 msgid "Open plugin" msgstr "" #: a11yfix.php:290 msgid "Crawl internal URLs from your home page and store results locally in your browser." msgstr "" #: a11yfix.php:291 #: src/js/crawler/a11yfix-url-crawler.js:116 msgid "Ready" msgstr "" #: a11yfix.php:292 msgid "A11yFix for WCAG sections" msgstr "" #: a11yfix.php:293 msgid "Crawled pages" msgstr "" #: a11yfix.php:294 msgid "Test" msgstr "" #: a11yfix.php:295 msgid "Test results" msgstr "" #: a11yfix.php:296 msgid "Rules view" msgstr "" #: a11yfix.php:302 msgid "Depth limit" msgstr "" #: a11yfix.php:304 msgid "Start crawl" msgstr "" #: a11yfix.php:305 msgid "Run test" msgstr "" #: a11yfix.php:306 msgid "Clear crawled pages" msgstr "" #: a11yfix.php:314 msgid "Run all" msgstr "" #: a11yfix.php:315 msgid "Run" msgstr "" #: a11yfix.php:316 msgid "Stop test" msgstr "" #: a11yfix.php:322 msgid "A11yFix for WCAG page preview" msgstr "" #: a11yfix.php:329 msgid "Clear test results" msgstr "" #: a11yfix.php:330 #: src/js/layout/crawler-layout.js:185 msgid "Scope: page only" msgstr "" #: a11yfix.php:338 msgid "Images alt" msgstr "" #: a11yfix.php:339 msgid "Links" msgstr "" #: a11yfix.php:340 #: src/js/layout/rules-view-highlight-popup.js:42 msgid "Heading order" msgstr "" #: a11yfix.php:341 #: src/js/layout/rules-view-highlight-popup.js:54 msgid "Form labels" msgstr "" #: a11yfix.php:342 msgid "ARIA and accessible names" msgstr "" #: a11yfix.php:343 msgid "Keyboard focusable" msgstr "" #: a11yfix.php:344 msgid "Low contrast" msgstr "" #: a11yfix.php:345 msgid "Retest page" msgstr "" #: a11yfix.php:346 #: src/js/layout/crawler-layout.js:441 msgid "View in WP editor" msgstr "" #: a11yfix.php:347 msgid "View before send" msgstr "" #: a11yfix.php:348 msgid "Send data" msgstr "" #: a11yfix.php:355 msgid "A11yFix for WCAG rules view preview" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:311 msgid "Live view URL is not available yet." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:315 msgid "Switching to live view..." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:321 msgid "WP editor view is not available for this page." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:325 msgid "Switching to WP editor view..." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:333 msgid "Rules view is not ready yet." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:338 msgid "No failed selectors available for this rule." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:361 msgid "Rule highlights shown. Visible highlighted elements:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:365 msgid "Rule highlights updated. Visible highlighted elements:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:374 #: src/js/crawler/a11yfix-url-crawler.js:1495 #: src/js/crawler/a11yfix-url-crawler.js:1619 msgid "Rule runner is not configured." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:390 msgid "Open a page in Rules view from Test results before retesting." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:415 msgid "Retesting current Rules view page..." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:459 #: src/js/crawler/a11yfix-url-crawler.js:465 msgid "Page retested and refreshed in Rules view." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:468 #: src/js/crawler/a11yfix-url-crawler.js:1598 #: src/js/crawler/a11yfix-url-crawler.js:1722 msgid "Iframe run failed:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:468 #: src/js/crawler/a11yfix-url-crawler.js:1598 #: src/js/crawler/a11yfix-url-crawler.js:1722 #: src/js/crawler/a11yfix-url-crawler.js:1767 msgid "Unknown error" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:494 msgid "Loading rules view..." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:499 msgid "Rules view could not be loaded." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:538 msgid "Rules view loaded. No failed selectors found on the page." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:543 msgid "Rules view loaded. Highlighted elements:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:565 #: src/js/layout/crawler-layout.js:220 msgid "We detected some blocks displacement, can you send us anonymous data" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:698 #: src/js/layout/crawler-layout.js:215 msgid "Test mode: submit sample button is force-enabled." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:764 msgid "Submit useful live/edit mismatch sample for mapping improvements." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:779 msgid "Submit sample requires both live and WP editor views with captured block data." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:790 msgid "Submitting sample..." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:796 msgid "Sample submission failed:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:804 msgid "Sample submitted successfully. Thank you for helping us improve block mapping." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:816 msgid "Sample data is incomplete for sending." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:837 msgid "live view URL" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:841 msgid "WP editor URL" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:845 msgid "live blocks" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:849 msgid "editor blocks" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:853 msgid "block mapping" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:860 msgid "Missing:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:872 msgid "Submit endpoint is not configured." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:896 msgid "Network error while sending sample." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:910 msgid "HTTP status" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1362 msgid "Stopping test..." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1376 #: src/js/crawler/a11yfix-url-crawler.js:1572 #: src/js/crawler/a11yfix-url-crawler.js:1679 msgid "Iframe run warning for URL:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1461 msgid "Crawled pages cleared." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1465 msgid "Could not clear crawled pages." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1482 msgid "Crawled pages + rules data cleared." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1486 msgid "Could not clear crawled pages + rules data." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1529 #: src/js/crawler/a11yfix-url-crawler.js:1653 msgid "Iframe run in progress... Processing:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1566 #: src/js/crawler/a11yfix-url-crawler.js:1673 msgid "Iframe test timed out and was skipped for URL:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1588 #: src/js/crawler/a11yfix-url-crawler.js:1712 msgid "Test stopped." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1591 #: src/js/crawler/a11yfix-url-crawler.js:1715 msgid "Test complete. Timed out pages skipped:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1594 #: src/js/crawler/a11yfix-url-crawler.js:1718 msgid "Test complete" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1614 msgid "No crawled pages available." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1626 msgid "Open a crawled page in Test before running a single-page test." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1633 msgid "Current iframe page is not in crawled pages." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1742 msgid "Crawling in progress..." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1751 msgid "Crawling in progress... Pages found:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1763 msgid "Crawl complete. Pages found:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1767 msgid "Crawl failed:" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1780 msgid "Use \"Run crawled pages in iframe\" to start rules check." msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1795 msgid "Request failed" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1965 msgid "header detected" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1966 msgid "header not detected" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1968 msgid "footer detected" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1969 msgid "footer not detected" msgstr "" #: src/js/crawler/a11yfix-url-crawler.js:1971 msgid "Common layout analysis:" msgstr "" #: src/js/crawler/rules-view-identity-guard.js:37 msgid "Rules view blocked: post ID mismatch for URL." msgstr "" #: src/js/crawler/rules-view-identity-guard.js:37 msgid "Expected" msgstr "" #: src/js/crawler/rules-view-identity-guard.js:37 msgid "Got" msgstr "" #: src/js/crawler/rules-view-identity-guard.js:37 #: src/js/layout/crawled-pages-layout.js:68 #: src/js/layout/crawled-pages-layout.js:157 #: src/js/layout/crawled-pages-layout.js:163 #: src/js/layout/crawled-pages-layout.js:176 #: src/js/layout/rules-results-layout.js:383 msgid "N/A" msgstr "" #: src/js/crawler/rules-view-identity-guard.js:48 msgid "Rules view page verified. Highlights restored:" msgstr "" #: src/js/crawler/rules-view-identity-guard.js:52 msgid "Rules view page verified. Toggle buttons restored." msgstr "" #: src/js/layout/crawled-pages-layout.js:38 #: src/js/layout/rules-results-layout.js:59 msgid "No pages crawled yet." msgstr "" #: src/js/layout/crawled-pages-layout.js:69 #: src/js/layout/rules-results-layout.js:88 msgid "Stored pages:" msgstr "" #: src/js/layout/crawled-pages-layout.js:69 msgid "Last crawl:" msgstr "" #: src/js/layout/crawled-pages-layout.js:82 #: src/js/layout/rules-results-layout.js:108 msgid "URL" msgstr "" #: src/js/layout/crawled-pages-layout.js:83 msgid "Depth" msgstr "" #: src/js/layout/crawled-pages-layout.js:84 #: src/js/layout/rules-results-layout.js:109 msgid "ID" msgstr "" #: src/js/layout/crawled-pages-layout.js:85 msgid "Crawled date and time" msgstr "" #: src/js/layout/crawled-pages-layout.js:128 msgid "Common layout detection" msgstr "" #: src/js/layout/crawled-pages-layout.js:134 msgid "Header" msgstr "" #: src/js/layout/crawled-pages-layout.js:135 msgid "Footer" msgstr "" #: src/js/layout/crawled-pages-layout.js:147 msgid "Not detected" msgstr "" #: src/js/layout/crawled-pages-layout.js:151 msgid "Confidence" msgstr "" #: src/js/layout/crawled-pages-layout.js:151 msgid "Coverage" msgstr "" #: src/js/layout/crawler-layout.js:186 msgid "Scope: all" msgstr "" #: src/js/layout/crawler-layout.js:436 msgid "View live" msgstr "" #: src/js/layout/rule-details-popup-controller.js:13 msgid "yes" msgstr "" #: src/js/layout/rule-details-popup-controller.js:13 msgid "no" msgstr "" #: src/js/layout/rule-details-popup-controller.js:20 #: src/js/layout/rules-results-layout.js:390 msgid "header" msgstr "" #: src/js/layout/rule-details-popup-controller.js:24 #: src/js/layout/rules-results-layout.js:394 msgid "footer" msgstr "" #: src/js/layout/rule-details-popup-controller.js:28 #: src/js/layout/rule-details-popup-controller.js:955 #: src/js/layout/rule-details-popup-controller.js:961 #: src/js/layout/rule-details-popup-controller.js:971 #: src/js/layout/rules-results-layout.js:398 msgid "page" msgstr "" #: src/js/layout/rule-details-popup-controller.js:61 msgid "Failed items:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:95 #: src/js/layout/rule-details-popup-controller.js:342 #: src/js/layout/rule-details-popup-controller.js:391 #: src/js/layout/rule-details-popup-controller.js:435 #: src/js/layout/rule-details-popup-controller.js:516 #: src/js/layout/rule-details-popup-controller.js:586 #: src/js/layout/rule-details-popup-controller.js:622 #: src/js/layout/rule-details-popup-controller.js:692 #: src/js/layout/rule-details-popup-controller.js:759 #: src/js/layout/rule-details-popup-controller.js:825 #: src/js/layout/rule-details-popup-controller.js:908 msgid "Part:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:102 msgid "Fix:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:117 msgid "Image alt issues" msgstr "" #: src/js/layout/rule-details-popup-controller.js:118 msgid "No failed image alt results for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:121 msgid "Link text issues" msgstr "" #: src/js/layout/rule-details-popup-controller.js:122 msgid "No failed link results for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:125 #: src/js/layout/rule-details-popup-controller.js:412 msgid "Heading issues" msgstr "" #: src/js/layout/rule-details-popup-controller.js:126 msgid "No failed heading results for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:129 #: src/js/layout/rule-details-popup-controller.js:453 msgid "Form label issues" msgstr "" #: src/js/layout/rule-details-popup-controller.js:130 msgid "No failed form label results for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:133 msgid "Accessible name source issues" msgstr "" #: src/js/layout/rule-details-popup-controller.js:134 msgid "No failed accessible name source results for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:137 msgid "aria-labelledby integrity issues" msgstr "" #: src/js/layout/rule-details-popup-controller.js:138 msgid "No failed aria-labelledby integrity results for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:141 msgid "aria-hidden interactive issues" msgstr "" #: src/js/layout/rule-details-popup-controller.js:142 msgid "No failed aria-hidden interactive results for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:145 msgid "Keyboard focusable issues" msgstr "" #: src/js/layout/rule-details-popup-controller.js:146 msgid "No failed keyboard focusable results for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:149 msgid "Low contrast issues" msgstr "" #: src/js/layout/rule-details-popup-controller.js:150 msgid "No failed low contrast results for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:165 msgid "Image:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:165 #: src/js/layout/rule-details-popup-controller.js:340 msgid "No image source" msgstr "" #: src/js/layout/rule-details-popup-controller.js:167 #: src/js/layout/rule-details-popup-controller.js:341 msgid "Alt:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:167 #: src/js/layout/rule-details-popup-controller.js:181 #: src/js/layout/rule-details-popup-controller.js:183 #: src/js/layout/rule-details-popup-controller.js:341 #: src/js/layout/rule-details-popup-controller.js:389 #: src/js/layout/rule-details-popup-controller.js:390 msgid "(empty)" msgstr "" #: src/js/layout/rule-details-popup-controller.js:181 #: src/js/layout/rule-details-popup-controller.js:389 msgid "Href:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:183 #: src/js/layout/rule-details-popup-controller.js:290 #: src/js/layout/rule-details-popup-controller.js:390 #: src/js/layout/rule-details-popup-controller.js:902 msgid "Text:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:196 msgid "Heading issue" msgstr "" #: src/js/layout/rule-details-popup-controller.js:210 #: src/js/layout/rule-details-popup-controller.js:506 msgid "Control:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:212 #: src/js/layout/rule-details-popup-controller.js:228 #: src/js/layout/rule-details-popup-controller.js:244 #: src/js/layout/rule-details-popup-controller.js:260 #: src/js/layout/rule-details-popup-controller.js:276 #: src/js/layout/rule-details-popup-controller.js:511 #: src/js/layout/rule-details-popup-controller.js:513 #: src/js/layout/rule-details-popup-controller.js:581 #: src/js/layout/rule-details-popup-controller.js:583 #: src/js/layout/rule-details-popup-controller.js:621 #: src/js/layout/rule-details-popup-controller.js:691 #: src/js/layout/rule-details-popup-controller.js:758 #: src/js/layout/rule-details-popup-controller.js:824 msgid "Issue:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:212 #: src/js/layout/rule-details-popup-controller.js:228 #: src/js/layout/rule-details-popup-controller.js:244 #: src/js/layout/rule-details-popup-controller.js:260 #: src/js/layout/rule-details-popup-controller.js:276 #: src/js/layout/rule-details-popup-controller.js:513 msgid "Unknown issue" msgstr "" #: src/js/layout/rule-details-popup-controller.js:213 msgid "Label:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:226 #: src/js/layout/rule-details-popup-controller.js:242 #: src/js/layout/rule-details-popup-controller.js:258 #: src/js/layout/rule-details-popup-controller.js:274 #: src/js/layout/rule-details-popup-controller.js:575 #: src/js/layout/rule-details-popup-controller.js:688 #: src/js/layout/rule-details-popup-controller.js:756 #: src/js/layout/rule-details-popup-controller.js:822 msgid "Element:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:229 msgid "Visible name / aria-label:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:245 #: src/js/layout/rule-details-popup-controller.js:689 msgid "aria-labelledby:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:261 #: src/js/layout/rule-details-popup-controller.js:823 msgid "aria-hidden:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:292 #: src/js/layout/rule-details-popup-controller.js:904 msgid "Contrast:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:292 #: src/js/layout/rule-details-popup-controller.js:905 msgid "required" msgstr "" #: src/js/layout/rule-details-popup-controller.js:293 #: src/js/layout/rule-details-popup-controller.js:907 msgid "Colors:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:310 msgid "Image alt details" msgstr "" #: src/js/layout/rule-details-popup-controller.js:317 msgid "No checked image data for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:333 msgid "No alt text" msgstr "" #: src/js/layout/rule-details-popup-controller.js:364 msgid "Links and text" msgstr "" #: src/js/layout/rule-details-popup-controller.js:371 msgid "No links found for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:419 msgid "No heading problems found for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:462 msgid "No form controls found for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:470 #: src/js/rules/form-labels-rule.js:42 msgid "All form controls have valid labels." msgstr "" #: src/js/layout/rule-details-popup-controller.js:476 msgid "Invalid controls" msgstr "" #: src/js/layout/rule-details-popup-controller.js:483 msgid "Valid controls" msgstr "" #: src/js/layout/rule-details-popup-controller.js:507 msgid "ID/Name:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:508 msgid "Label source:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:508 msgid "Label value:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:511 #: src/js/layout/rule-details-popup-controller.js:583 #: src/js/layout/rule-details-popup-controller.js:621 #: src/js/layout/rule-details-popup-controller.js:691 #: src/js/layout/rule-details-popup-controller.js:758 #: src/js/layout/rule-details-popup-controller.js:824 msgid "None" msgstr "" #: src/js/layout/rule-details-popup-controller.js:538 msgid "Keyboard focusable elements" msgstr "" #: src/js/layout/rule-details-popup-controller.js:549 msgid "No keyboard-focusable candidates found for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:557 msgid "Candidates:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:557 msgid "Focusable:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:557 msgid "Dialogs:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:557 #: src/js/layout/rule-details-popup-controller.js:671 #: src/js/layout/rule-details-popup-controller.js:740 #: src/js/layout/rule-details-popup-controller.js:806 msgid "Issues:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:576 #: src/js/layout/rule-details-popup-controller.js:688 #: src/js/layout/rule-details-popup-controller.js:756 #: src/js/layout/rule-details-popup-controller.js:822 msgid "ID/Name/Role:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:577 #: src/js/layout/rule-details-popup-controller.js:620 msgid "State:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:577 msgid "Focusable" msgstr "" #: src/js/layout/rule-details-popup-controller.js:577 msgid "Disabled" msgstr "" #: src/js/layout/rule-details-popup-controller.js:578 msgid "Checks:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:578 msgid "Focus indicator" msgstr "" #: src/js/layout/rule-details-popup-controller.js:578 msgid "Focus style removed" msgstr "" #: src/js/layout/rule-details-popup-controller.js:578 msgid "CSS order override" msgstr "" #: src/js/layout/rule-details-popup-controller.js:578 msgid "Custom key handlers" msgstr "" #: src/js/layout/rule-details-popup-controller.js:603 msgid "Dialog focus checks" msgstr "" #: src/js/layout/rule-details-popup-controller.js:619 msgid "Dialog:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:619 msgid "ID/Role:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:620 msgid "Focusable elements" msgstr "" #: src/js/layout/rule-details-popup-controller.js:620 msgid "Autofocus" msgstr "" #: src/js/layout/rule-details-popup-controller.js:620 msgid "Container focusable" msgstr "" #: src/js/layout/rule-details-popup-controller.js:646 #: src/js/layout/rules-view-highlight-popup.js:72 msgid "aria-labelledby integrity" msgstr "" #: src/js/layout/rule-details-popup-controller.js:655 #: src/js/layout/rule-details-popup-controller.js:724 #: src/js/layout/rule-details-popup-controller.js:790 msgid "Rule evaluation error:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:663 msgid "No aria-labelledby usage found for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:671 #: src/js/layout/rule-details-popup-controller.js:740 #: src/js/layout/rule-details-popup-controller.js:806 msgid "Checked:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:689 msgid "Missing IDs:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:690 msgid "Resolved text:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:690 msgid "Hidden references:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:715 msgid "Accessible name source preference" msgstr "" #: src/js/layout/rule-details-popup-controller.js:732 msgid "No aria-label overrides with visible names found for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:757 msgid "Visible name:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:757 msgid "aria-label:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:781 msgid "aria-hidden on interactive content" msgstr "" #: src/js/layout/rule-details-popup-controller.js:798 msgid "No interactive candidates found for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:823 msgid "Hidden ancestor:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:847 msgid "Low contrast details" msgstr "" #: src/js/layout/rule-details-popup-controller.js:855 msgid "No visible text checks found for this page." msgstr "" #: src/js/layout/rule-details-popup-controller.js:863 msgid "No low contrast text found." msgstr "" #: src/js/layout/rule-details-popup-controller.js:871 msgid "Issues found:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:914 msgid "Background source:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:920 msgid "Solid color (complex background detected)" msgstr "" #: src/js/layout/rule-details-popup-controller.js:922 msgid "Solid color" msgstr "" #: src/js/layout/rule-details-popup-controller.js:936 msgid "Notice:" msgstr "" #: src/js/layout/rule-details-popup-controller.js:937 msgid "Background may include an image or gradient; result is based on solid background fallback." msgstr "" #: src/js/layout/rule-details-popup-controller.js:985 msgid "Submit sample payload preview" msgstr "" #: src/js/layout/rule-details-popup-controller.js:989 msgid "This preview contains only anonymous technical mapping data prepared for live/edit mismatch tuning." msgstr "" #: src/js/layout/rule-details-popup-controller.js:992 msgid "Why this anonymous sample is useful" msgstr "" #: src/js/layout/rule-details-popup-controller.js:995 msgid "Low-confidence mappings are the most helpful for improving the live/edit block mapping algorithm. Thank you very much for sharing this sample and helping make results better for everyone." msgstr "" #: src/js/layout/rule-details-popup-controller.js:1025 msgid "Full payload JSON" msgstr "" #: src/js/layout/rule-details-popup-controller.js:1115 msgid "Close" msgstr "" #: src/js/layout/rule-issue-tips.js:17 #: src/js/layout/rules-view-highlight-popup.js:9 #: src/js/layout/rules-view-highlight-popup.js:126 msgid "Rule" msgstr "" #: src/js/layout/rule-issue-tips.js:25 #: src/js/layout/rules-view-highlight-popup.js:50 msgid "Add concise alt text that describes the image purpose." msgstr "" #: src/js/layout/rule-issue-tips.js:29 #: src/js/layout/rules-view-highlight-popup.js:38 msgid "Ensure each link has descriptive visible text." msgstr "" #: src/js/layout/rule-issue-tips.js:34 msgid "Add at least one H1 heading to establish page structure." msgstr "" #: src/js/layout/rule-issue-tips.js:38 msgid "Start page content with an H1 heading; it defines the main topic." msgstr "" #: src/js/layout/rule-issue-tips.js:42 msgid "Avoid skipping heading levels (e.g., H2 then H4). Use consecutive heading levels." msgstr "" #: src/js/layout/rule-issue-tips.js:46 msgid "Ensure heading levels follow a logical nested order without gaps." msgstr "" #: src/js/layout/rule-issue-tips.js:50 msgid "Use only one H1 per page to represent the primary topic." msgstr "" #: src/js/layout/rule-issue-tips.js:54 msgid "Use semantic heading elements (H1–H6) instead of styled text for visual headings." msgstr "" #: src/js/layout/rule-issue-tips.js:57 #: src/js/layout/rules-view-highlight-popup.js:44 msgid "Keep heading levels in a logical hierarchy without skipping levels." msgstr "" #: src/js/layout/rule-issue-tips.js:61 msgid "Add a label element linked via for/id, wrap the input in a label, or set aria-label/aria-labelledby." msgstr "" #: src/js/layout/rule-issue-tips.js:65 msgid "Update aria-label to match the visible label, or remove aria-label and rely on the visible label text." msgstr "" #: src/js/layout/rule-issue-tips.js:70 msgid "Set aria-labelledby to a space-separated list of valid element IDs that exist in the DOM." msgstr "" #: src/js/layout/rule-issue-tips.js:74 msgid "Ensure every ID listed in aria-labelledby exists in the DOM. Add the missing element or correct the ID reference." msgstr "" #: src/js/layout/rule-issue-tips.js:78 msgid "The referenced element exists but has no text content. Add visible text to the referenced element." msgstr "" #: src/js/layout/rule-issue-tips.js:82 msgid "Remove aria-hidden from referenced label elements, or use aria-label with the label text directly." msgstr "" #: src/js/layout/rule-issue-tips.js:85 #: src/js/layout/rules-view-highlight-popup.js:74 msgid "Ensure aria-labelledby IDs exist and resolve to readable text." msgstr "" #: src/js/layout/rule-issue-tips.js:90 msgid "Remove aria-hidden=\"true\" from the interactive element itself." msgstr "" #: src/js/layout/rule-issue-tips.js:94 msgid "Remove aria-hidden=\"true\" from the ancestor container, or move the interactive element outside the hidden region." msgstr "" #: src/js/layout/rule-issue-tips.js:97 #: src/js/layout/rules-view-highlight-popup.js:80 msgid "Do not hide interactive content with aria-hidden=\"true\"." msgstr "" #: src/js/layout/rule-issue-tips.js:102 msgid "Set tabindex to an integer: 0 to include in natural order, or -1 to remove from tab order programmatically." msgstr "" #: src/js/layout/rule-issue-tips.js:106 msgid "Remove tabindex=\"-1\" or manage focus programmatically so keyboard users can still reach this element." msgstr "" #: src/js/layout/rule-issue-tips.js:110 msgid "Add tabindex=\"0\" or use a natively focusable element type such as button or a[href]." msgstr "" #: src/js/layout/rule-issue-tips.js:114 msgid "Replace tabindex > 0 with tabindex=\"0\" and rely on DOM order for a logical focus sequence." msgstr "" #: src/js/layout/rule-issue-tips.js:118 msgid "Avoid using CSS order property on focusable elements; keep DOM order consistent with visual order." msgstr "" #: src/js/layout/rule-issue-tips.js:122 msgid "Add keydown handler for Enter and Space keys to match native button/link keyboard behavior." msgstr "" #: src/js/layout/rule-issue-tips.js:126 msgid "Restore :focus-visible styles or provide a clearly visible custom focus indicator." msgstr "" #: src/js/layout/rule-issue-tips.js:130 msgid "Add at least one focusable element (button, link, or input) inside the dialog." msgstr "" #: src/js/layout/rule-issue-tips.js:134 msgid "Add aria-modal=\"true\" to the dialog element when it traps focus as a modal overlay." msgstr "" #: src/js/layout/rule-issue-tips.js:138 msgid "Add autofocus to the first actionable element inside the dialog, or call .focus() on the container when opening." msgstr "" #: src/js/layout/rule-issue-tips.js:141 #: src/js/layout/rules-view-highlight-popup.js:62 msgid "Ensure interactive elements are keyboard-focusable and usable." msgstr "" #: src/js/layout/rule-issue-tips.js:146 msgid "Increase contrast between text and background to meet WCAG ratios (4.5:1 for normal text, 3:1 for large text). Note: this text intersects with an image/complex background, so the contrast estimate may not be fully accurate." msgstr "" #: src/js/layout/rule-issue-tips.js:149 msgid "Increase contrast between text and background to meet WCAG ratios (4.5:1 for normal text, 3:1 for large text)." msgstr "" #: src/js/layout/rules-results-layout.js:110 msgid "Images alt rule" msgstr "" #: src/js/layout/rules-results-layout.js:111 msgid "Link text rule" msgstr "" #: src/js/layout/rules-results-layout.js:112 msgid "Heading order rule" msgstr "" #: src/js/layout/rules-results-layout.js:113 msgid "Form labels rule" msgstr "" #: src/js/layout/rules-results-layout.js:114 msgid "Accessible name source rule" msgstr "" #: src/js/layout/rules-results-layout.js:115 msgid "aria-labelledby integrity rule" msgstr "" #: src/js/layout/rules-results-layout.js:116 msgid "aria-hidden interactive rule" msgstr "" #: src/js/layout/rules-results-layout.js:117 msgid "Keyboard focusable rule" msgstr "" #: src/js/layout/rules-results-layout.js:118 msgid "Low contrast rule" msgstr "" #: src/js/layout/rules-results-layout.js:119 msgid "Actions" msgstr "" #: src/js/layout/rules-results-layout.js:164 msgid "View and Fix" msgstr "" #: src/js/layout/rules-results-layout.js:271 msgid "No images" msgstr "" #: src/js/layout/rules-results-layout.js:328 msgid "Pass" msgstr "" #: src/js/layout/rules-results-layout.js:332 msgid "Fail" msgstr "" #: src/js/layout/rules-results-layout.js:336 msgid "Skipped" msgstr "" #: src/js/layout/rules-results-layout.js:339 msgid "Not checked" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:10 msgid "failed" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:11 msgid "Rules" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:12 msgid "Block" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:13 msgid "Text" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:14 msgid "Rule name and problem" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:15 msgid "Tip to fix" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:16 msgid "Note" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:17 msgid "No rule details available." msgstr "" #: src/js/layout/rules-view-highlight-popup.js:18 msgid "unknown" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:20 msgid "Review this element and update content/markup to meet accessibility rules." msgstr "" #: src/js/layout/rules-view-highlight-popup.js:23 msgid "Inspect element context and adjust content/markup for accessibility." msgstr "" #: src/js/layout/rules-view-highlight-popup.js:26 msgid "Multiple rule issues are possible for this element. Toggle one rule button to display the exact problem." msgstr "" #: src/js/layout/rules-view-highlight-popup.js:36 msgid "Link text" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:48 msgid "Image alt text" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:56 msgid "Associate each input with a clear visible label." msgstr "" #: src/js/layout/rules-view-highlight-popup.js:60 msgid "Keyboard focus" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:66 msgid "Accessible name source" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:68 msgid "Avoid aria-label text that conflicts with visible labels or text." msgstr "" #: src/js/layout/rules-view-highlight-popup.js:78 msgid "aria-hidden interactive" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:84 msgid "Color contrast" msgstr "" #: src/js/layout/rules-view-highlight-popup.js:86 msgid "Increase contrast between text and background to meet WCAG ratios." msgstr "" #: src/js/rules/accessible-name-preferred-source-rule.js:23 msgid "No aria-label overrides with visible names found." msgstr "" #: src/js/rules/accessible-name-preferred-source-rule.js:34 msgid "Accessible name source preference issues found:" msgstr "" #: src/js/rules/accessible-name-preferred-source-rule.js:44 msgid "aria-label values match visible labels/text where both are present." msgstr "" #: src/js/rules/accessible-name-preferred-source-rule.js:74 msgid "aria-label conflicts with visible label/text. Prefer visible label source or align both values." msgstr "" #: src/js/rules/aria-hidden-interactive-rule.js:21 msgid "No interactive candidates found for aria-hidden checks." msgstr "" #: src/js/rules/aria-hidden-interactive-rule.js:32 msgid "Interactive aria-hidden issues found:" msgstr "" #: src/js/rules/aria-hidden-interactive-rule.js:42 msgid "No interactive content is hidden with aria-hidden." msgstr "" #: src/js/rules/aria-hidden-interactive-rule.js:89 msgid "Interactive element has aria-hidden=\"true\"." msgstr "" #: src/js/rules/aria-hidden-interactive-rule.js:91 msgid "Interactive element is inside an aria-hidden=\"true\" container." msgstr "" #: src/js/rules/aria-labelledby-integrity-rule.js:21 msgid "No aria-labelledby usage found." msgstr "" #: src/js/rules/aria-labelledby-integrity-rule.js:32 msgid "aria-labelledby integrity issues found:" msgstr "" #: src/js/rules/aria-labelledby-integrity-rule.js:42 msgid "All aria-labelledby references resolve to readable text." msgstr "" #: src/js/rules/aria-labelledby-integrity-rule.js:83 msgid "aria-labelledby is present but does not contain valid IDs." msgstr "" #: src/js/rules/aria-labelledby-integrity-rule.js:85 msgid "aria-labelledby references missing IDs:" msgstr "" #: src/js/rules/aria-labelledby-integrity-rule.js:87 msgid "aria-labelledby references do not provide readable text." msgstr "" #: src/js/rules/aria-labelledby-integrity-rule.js:89 msgid "aria-labelledby references hidden nodes:" msgstr "" #: src/js/rules/empty-or-untitled-links-rule.js:40 msgid "No links found." msgstr "" #: src/js/rules/empty-or-untitled-links-rule.js:51 msgid "Links without text found:" msgstr "" #: src/js/rules/empty-or-untitled-links-rule.js:61 msgid "All links have text." msgstr "" #: src/js/rules/form-labels-rule.js:21 msgid "No form controls found." msgstr "" #: src/js/rules/form-labels-rule.js:32 msgid "Form controls with missing/invalid labels:" msgstr "" #: src/js/rules/form-labels-rule.js:87 msgid "Missing accessible label (label, aria-label, or aria-labelledby)." msgstr "" #: src/js/rules/heading-order-rule.js:36 msgid "No semantic headings found." msgstr "" #: src/js/rules/heading-order-rule.js:40 msgid "Out-of-order: first heading is not H1." msgstr "" #: src/js/rules/heading-order-rule.js:55 msgid "Skipped level:" msgstr "" #: src/js/rules/heading-order-rule.js:67 msgid "Out-of-order sequence near" msgstr "" #: src/js/rules/heading-order-rule.js:79 msgid "Multiple H1 headings found:" msgstr "" #: src/js/rules/heading-order-rule.js:92 msgid "Presentational headings found (non-semantic):" msgstr "" #: src/js/rules/heading-order-rule.js:108 msgid "Heading order issues found:" msgstr "" #: src/js/rules/heading-order-rule.js:120 msgid "Heading order looks good." msgstr "" #: src/js/rules/image-alt-text-rule.js:30 msgid "No images found." msgstr "" #: src/js/rules/image-alt-text-rule.js:41 msgid "Images missing alt:" msgstr "" #: src/js/rules/image-alt-text-rule.js:51 msgid "All images have alt text." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:25 msgid "No keyboard-focusable candidates found." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:39 msgid "Keyboard focus issues found:" msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:52 msgid "Keyboard focusable elements look good." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:120 msgid "Invalid tabindex value." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:122 msgid "Interactive element removed from tab order (tabindex < 0)." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:124 msgid "Interactive element is not keyboard-focusable." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:126 msgid "Avoid positive tabindex values; use 0 or native order." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:128 msgid "Element uses CSS order which can break logical keyboard navigation order." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:130 msgid "Custom interactive role may be missing Enter/Space keyboard handling." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:132 msgid "Focus styles appear to be removed without a visible replacement." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:179 msgid "Dialog has no focusable elements to support keyboard use." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:181 msgid "Dialog should set aria-modal=\"true\" when it behaves as a modal with focus trap." msgstr "" #: src/js/rules/keyboard-focusable-elements-rule.js:183 msgid "Dialog may not receive initial focus when opened; add autofocus target or tabindex to container." msgstr "" #: src/js/rules/low-color-contrast-rule.js:51 msgid "No visible text nodes found." msgstr "" #: src/js/rules/low-color-contrast-rule.js:59 msgid "Low contrast text nodes found:" msgstr "" #: src/js/rules/low-color-contrast-rule.js:66 msgid "No low contrast text nodes found." msgstr "" #: src/js/rules/rule-runner.js:187 msgid "Document is not available" msgstr "" #: src/js/rules/rule-runner.js:205 msgid "Rule evaluation error" msgstr ""