{"id":68349,"date":"2025-10-13T23:03:45","date_gmt":"2025-10-14T03:03:45","guid":{"rendered":"https:\/\/mainehost.com\/?page_id=68349"},"modified":"2025-11-12T14:42:32","modified_gmt":"2025-11-12T19:42:32","slug":"wordpress-ada-accessibility-scanner","status":"publish","type":"page","link":"https:\/\/mainehost.com\/wordpress-ada-accessibility-scanner\/","title":{"rendered":"WordPress ADA Accessibility Scanner"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; column_structure=&#8221;2_3,1_3&#8243; width=&#8221;90%&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_column type=&#8221;2_3&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<h1>What our ADA Website Analyzer Plugin scans for:<\/h1>\n<h2><strong>WordPress ADA Accessibility Scanner<br \/>Scan Elements &amp; Checks<\/strong><\/h2>\n<h3><strong>Structural &amp; Navigation<\/strong><\/h3>\n<ul>\n<li><strong>Missing <code>&lt;main&gt;<\/code> landmark<\/strong><br \/>Ensures a primary content region exists for screen readers.<\/li>\n<li><strong>Missing page <code>&lt;title&gt;<\/code><\/strong><br \/>Flags pages without a proper, descriptive <code>&lt;title&gt;<\/code>.<\/li>\n<li><strong>Missing <code>&lt;h1&gt;<\/code> heading<\/strong><br \/>Checks that each page includes a top-level heading.<\/li>\n<li><strong>Improper heading hierarchy<\/strong><br \/>Detects skipped heading levels (e.g., <code>&lt;h1&gt;<\/code> \u2192 <code>&lt;h3&gt;<\/code>).<\/li>\n<li><strong>Empty or repetitive links<\/strong><br \/>Finds <code>&lt;a&gt;<\/code> tags that contain no text or redundant link text (e.g., multiple \u201cclick here\u201d).<\/li>\n<li><strong>Links missing <code>aria-label<\/code><\/strong><br \/>Flags navigation or icon-only links without descriptive labels.<\/li>\n<\/ul>\n<hr \/>\n<h3>\ufe0f <strong>Images &amp; Media<\/strong><\/h3>\n<ul>\n<li><strong>Images missing <code>alt<\/code> attributes<\/strong><br \/>Detects <code>&lt;img&gt;<\/code> tags without <code>alt<\/code> or with empty <code>alt=\"\"<\/code>.<\/li>\n<li><strong>Decorative images not marked properly<\/strong><br \/>Flags images missing <code>role=\"presentation\"<\/code> or empty alt text when appropriate.<\/li>\n<li><strong>Linked images missing descriptive alt<\/strong><br \/>Ensures logos or image links have alt text that explains the <em>link purpose<\/em>.<\/li>\n<li><strong>Video and audio elements without captions or transcripts<\/strong><br \/>Scans for <code>&lt;video&gt;<\/code> and <code>&lt;audio&gt;<\/code> elements missing <code>&lt;track&gt;<\/code> or caption text.<\/li>\n<\/ul>\n<hr \/>\n<h3><strong>Contrast &amp; Visuals<\/strong><\/h3>\n<ul>\n<li><strong>Low color contrast<\/strong><br \/>Measures text color vs. background color to ensure 4.5:1 (normal text) or 3:1 (large text).<\/li>\n<li><strong>Text embedded in images<\/strong><br \/>Detects text baked into images (which fails contrast and resizing rules).<\/li>\n<\/ul>\n<hr \/>\n<h3><strong>Forms &amp; Inputs<\/strong><\/h3>\n<ul>\n<li><strong>Form fields missing <code>&lt;label&gt;<\/code> or <code>aria-label<\/code><\/strong><br \/>Checks all <code>&lt;input&gt;<\/code>, <code>&lt;textarea&gt;<\/code>, and <code>&lt;select&gt;<\/code> elements.<\/li>\n<li><strong>Placeholder-only forms<\/strong><br \/>Flags fields that rely solely on placeholder text (not accessible).<\/li>\n<li><strong>Buttons with no text or label<\/strong><br \/>Finds <code>&lt;button&gt;<\/code> or <code>&lt;input type=\"submit\"&gt;<\/code> without a readable label.<\/li>\n<\/ul>\n<hr \/>\n<h3><strong>ARIA &amp; Semantic Roles<\/strong><\/h3>\n<ul>\n<li><strong>Incorrect or missing ARIA roles<\/strong><br \/>Flags invalid ARIA attributes (e.g., <code>aria-role<\/code> instead of <code>role<\/code>).<\/li>\n<li><strong>ARIA elements missing <code>aria-label<\/code> or <code>aria-labelledby<\/code><\/strong><br \/>Checks that landmark roles like <code>navigation<\/code>, <code>banner<\/code>, <code>main<\/code>, etc., are properly labeled.<\/li>\n<li><strong>Duplicate IDs<\/strong><br \/>Ensures each element ID is unique (important for ARIA references).<\/li>\n<\/ul>\n<hr \/>\n<h3><strong>Responsive &amp; Mobile<\/strong><\/h3>\n<ul>\n<li><strong>Viewport meta tag missing<\/strong><br \/>Confirms the presence of <code>&lt;meta name=\"viewport\" ...&gt;<\/code>.<\/li>\n<li><strong>Zoom disabled<\/strong><br \/>Flags pages that block user scaling (<code>user-scalable=no<\/code>).<\/li>\n<\/ul>\n<hr \/>\n<h3>\u26a0\ufe0f <strong>Miscellaneous Accessibility Flags<\/strong><\/h3>\n<ul>\n<li><strong>Autoplaying media without controls<\/strong><br \/>Finds autoplaying <code>&lt;video&gt;<\/code> or <code>&lt;audio&gt;<\/code> without pause controls.<\/li>\n<li><strong>Links opening new tabs without notice<\/strong><br \/>Detects links using <code>target=\"_blank\"<\/code> missing <code>aria-label<\/code> or <code>rel=\"noopener\"<\/code>.<\/li>\n<li><strong>Flashing or blinking content<\/strong><br \/>Identifies <code>&lt;blink&gt;<\/code>, <code>&lt;marquee&gt;<\/code>, or CSS animations that flash &gt;3 times\/sec.<\/li>\n<li><strong>Non-descriptive button text<\/strong><br \/>Flags buttons like \u201cSubmit,\u201d \u201cOK,\u201d or \u201cClick Here\u201d without context.<\/li>\n<li><strong>Non-semantic clickables<\/strong><br \/>Detects <code>&lt;div&gt;<\/code> or <code>&lt;span&gt;<\/code> elements with click handlers but no role or label.<\/li>\n<\/ul>\n<hr \/>\n<h3><strong>Reporting &amp; Severity Levels<\/strong><\/h3>\n<p>Each issue is categorized and displayed in the results table as:<\/p>\n<ul>\n<li><strong>High Severity:<\/strong> Violates core WCAG 2.1 AA (e.g., missing alt, missing labels).<\/li>\n<li><strong>Medium Severity:<\/strong> Potential usability issues (e.g., heading order, repetitive links).<\/li>\n<li><strong>Low Severity:<\/strong> Best-practice improvements (e.g., empty ARIA roles, meta tags).<\/li>\n<\/ul>\n<hr \/>\n<h3><strong>Additional Features in the Final Build<\/strong><\/h3>\n<ul>\n<li>Option to <strong>scan homepage only<\/strong> or <strong>entire site<\/strong><\/li>\n<li><strong>Progress bar<\/strong> with estimated completion time<\/li>\n<li><strong>Line number column<\/strong> (to locate exact issue in source)<\/li>\n<li><strong>Severity column<\/strong> (for triage)<\/li>\n<li>Skips <strong><code>.xml<\/code> and non-HTML pages<\/strong> automatically<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_image src=&#8221;https:\/\/mainehost.com\/wp-content\/uploads\/2025\/11\/ADA-Accessiblity-Scanner-Logo.png&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; title_text=&#8221;ADA-Accessiblity-Scanner-Logo&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243; alt=&#8221;ADA Accessibility Scanner&#8221;][\/et_pb_image][et_pb_sidebar _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; area=&#8221;et_pb_widget_area_2&#8243; orientation=&#8221;right&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;][\/et_pb_sidebar][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What our ADA Website Analyzer Plugin scans for: WordPress ADA Accessibility ScannerScan Elements &amp; Checks Structural &amp; Navigation Missing &lt;main&gt; landmarkEnsures a primary content region exists for screen readers. Missing page &lt;title&gt;Flags pages without a proper, descriptive &lt;title&gt;. Missing &lt;h1&gt; headingChecks that each page includes a top-level heading. Improper heading hierarchyDetects skipped heading levels (e.g., [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<h2><strong>ADA Accessibility Scanner \u2013 Scan Elements & Checks<\/strong><\/h2><h3><strong>Structural & Navigation<\/strong><\/h3><ul><li><strong>Missing <code><main><\/code> landmark<\/strong><br \/>Ensures a primary content region exists for screen readers.<\/li><li><strong>Missing page <code><title><\/code><\/strong><br \/>Flags pages without a proper, descriptive <code><title><\/code>.<\/li><li><strong>Missing <code><h1><\/code> heading<\/strong><br \/>Checks that each page includes a top-level heading.<\/li><li><strong>Improper heading hierarchy<\/strong><br \/>Detects skipped heading levels (e.g., <code><h1><\/code> \u2192 <code><h3><\/code>).<\/li><li><strong>Empty or repetitive links<\/strong><br \/>Finds <code><a><\/code> tags that contain no text or redundant link text (e.g., multiple \u201cclick here\u201d).<\/li><li><strong>Links missing <code>aria-label<\/code><\/strong><br \/>Flags navigation or icon-only links without descriptive labels.<\/li><\/ul><hr \/><h3>\ufe0f <strong>Images & Media<\/strong><\/h3><ul><li><strong>Images missing <code>alt<\/code> attributes<\/strong><br \/>Detects <code><img><\/code> tags without <code>alt<\/code> or with empty <code>alt=\"\"<\/code>.<\/li><li><strong>Decorative images not marked properly<\/strong><br \/>Flags images missing <code>role=\"presentation\"<\/code> or empty alt text when appropriate.<\/li><li><strong>Linked images missing descriptive alt<\/strong><br \/>Ensures logos or image links have alt text that explains the <em>link purpose<\/em>.<\/li><li><strong>Video and audio elements without captions or transcripts<\/strong><br \/>Scans for <code><video><\/code> and <code><audio><\/code> elements missing <code><track><\/code> or caption text.<\/li><\/ul><hr \/><h3><strong>Contrast & Visuals<\/strong><\/h3><ul><li><strong>Low color contrast<\/strong><br \/>Measures text color vs. background color to ensure 4.5:1 (normal text) or 3:1 (large text).<\/li><li><strong>Text embedded in images<\/strong><br \/>Detects text baked into images (which fails contrast and resizing rules).<\/li><\/ul><hr \/><h3><strong>Forms & Inputs<\/strong><\/h3><ul><li><strong>Form fields missing <code><label><\/code> or <code>aria-label<\/code><\/strong><br \/>Checks all <code><input><\/code>, <code><textarea><\/code>, and <code><select><\/code> elements.<\/li><li><strong>Placeholder-only forms<\/strong><br \/>Flags fields that rely solely on placeholder text (not accessible).<\/li><li><strong>Buttons with no text or label<\/strong><br \/>Finds <code><button><\/code> or <code><input type=\"submit\"><\/code> without a readable label.<\/li><\/ul><hr \/><h3><strong>ARIA & Semantic Roles<\/strong><\/h3><ul><li><strong>Incorrect or missing ARIA roles<\/strong><br \/>Flags invalid ARIA attributes (e.g., <code>aria-role<\/code> instead of <code>role<\/code>).<\/li><li><strong>ARIA elements missing <code>aria-label<\/code> or <code>aria-labelledby<\/code><\/strong><br \/>Checks that landmark roles like <code>navigation<\/code>, <code>banner<\/code>, <code>main<\/code>, etc., are properly labeled.<\/li><li><strong>Duplicate IDs<\/strong><br \/>Ensures each element ID is unique (important for ARIA references).<\/li><\/ul><hr \/><h3><strong>Responsive & Mobile<\/strong><\/h3><ul><li><strong>Viewport meta tag missing<\/strong><br \/>Confirms the presence of <code><meta name=\"viewport\" ...><\/code>.<\/li><li><strong>Zoom disabled<\/strong><br \/>Flags pages that block user scaling (<code>user-scalable=no<\/code>).<\/li><\/ul><hr \/><h3>\u26a0\ufe0f <strong>Miscellaneous Accessibility Flags<\/strong><\/h3><ul><li><strong>Autoplaying media without controls<\/strong><br \/>Finds autoplaying <code><video><\/code> or <code><audio><\/code> without pause controls.<\/li><li><strong>Links opening new tabs without notice<\/strong><br \/>Detects links using <code>target=\"_blank\"<\/code> missing <code>aria-label<\/code> or <code>rel=\"noopener\"<\/code>.<\/li><li><strong>Flashing or blinking content<\/strong><br \/>Identifies <code><blink><\/code>, <code><marquee><\/code>, or CSS animations that flash >3 times\/sec.<\/li><li><strong>Non-descriptive button text<\/strong><br \/>Flags buttons like \u201cSubmit,\u201d \u201cOK,\u201d or \u201cClick Here\u201d without context.<\/li><li><strong>Non-semantic clickables<\/strong><br \/>Detects <code><div><\/code> or <code><span><\/code> elements with click handlers but no role or label.<\/li><\/ul><hr \/><h3><strong>Reporting & Severity Levels<\/strong><\/h3><p>Each issue is categorized and displayed in the results table as:<\/p><ul><li><strong>High Severity:<\/strong> Violates core WCAG 2.1 AA (e.g., missing alt, missing labels).<\/li><li><strong>Medium Severity:<\/strong> Potential usability issues (e.g., heading order, repetitive links).<\/li><li><strong>Low Severity:<\/strong> Best-practice improvements (e.g., empty ARIA roles, meta tags).<\/li><\/ul><hr \/><h3><strong>Additional Features in the Final Build<\/strong><\/h3><ul><li>Option to <strong>scan homepage only<\/strong> or <strong>entire site<\/strong><\/li><li><strong>Progress bar<\/strong> with estimated completion time<\/li><li><strong>Line number column<\/strong> (to locate exact issue in source)<\/li><li><strong>Severity column<\/strong> (for triage)<\/li><li>Skips <strong><code>.xml<\/code> and non-HTML pages<\/strong> automatically<\/li><\/ul><p>\u00a0<\/p>","_et_gb_content_width":"","_analytify_skip_tracking":false,"footnotes":""},"class_list":["post-68349","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mainehost.com\/wp-json\/wp\/v2\/pages\/68349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mainehost.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mainehost.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mainehost.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mainehost.com\/wp-json\/wp\/v2\/comments?post=68349"}],"version-history":[{"count":5,"href":"https:\/\/mainehost.com\/wp-json\/wp\/v2\/pages\/68349\/revisions"}],"predecessor-version":[{"id":68461,"href":"https:\/\/mainehost.com\/wp-json\/wp\/v2\/pages\/68349\/revisions\/68461"}],"wp:attachment":[{"href":"https:\/\/mainehost.com\/wp-json\/wp\/v2\/media?parent=68349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}