Disclaimer: this content was partially produced via automation FTW! Don’t fear the AI future or the reaper.
What can automated tools test without humans?
SC 1.1.1 Non-text Content (A)
Testability: ⚠️ Partial
Automation can:
- Detect presence or absence of
alt
attributes. - Identify empty/missing
alt
on<img>
elements. - Identify images using
role="presentation"
oraria-hidden="true"
.
Automation cannot:
- Assess if alt text is meaningful or contextually accurate.
- Confirm whether the alt conveys the image’s purpose.
- Validate completeness of alternatives for complex content (e.g., charts).
SC 1.2.1 Audio-only and Video-only (Prerecorded) (A)
Testability: ⚠️ Partial
Automation can:
- Detect presence of
<audio>
/<video>
elements. - Check for linked transcript or text alternative.
Automation cannot:
- Determine whether the alternative is equivalent in information content.
- Evaluate accuracy or completeness of the transcript or description.
SC 1.2.2 Captions (Prerecorded) (A)
Testability: ⚠️ Partial
Automation can:
- Detect
<track kind="captions">
elements. - Identify association with media.
Automation cannot:
- Determine if captions are accurate, complete, or synchronized.
- Evaluate whether all spoken content and sounds are included.
SC 1.2.3 Audio Description or Media Alternative (Prerecorded) (A)
Testability: ⚠️ Partial
Automation can:
- Detect presence of a description track or a text-based alternative.
- Identify
<track kind="descriptions">
or aria-describedby.
Automation cannot:
- Evaluate whether the visual content is comprehensively described.
- Confirm that essential visual information is not omitted.
SC 1.2.4 Captions (Live) (AA)
Testability: ⚠️ Partial
Automation can:
- Identify live streaming and detect whether captions are delivered in real time.
- Confirm
<track kind="captions">
on live video.
Automation cannot:
- Evaluate real-time accuracy, latency, or synchronization of captions.
- Determine whether captions cover all spoken content.
SC 1.2.5 Audio Description (Prerecorded) (AA)
Testability: ⚠️ Partial
Automation can:
- Detect presence of audio description tracks.
- Identify related metadata like
<track kind="descriptions">
.
Automation cannot:
- Evaluate whether the description accurately conveys meaningful visuals.
- Determine whether users gain equivalent access to visual content.
SC 1.3.1 Info and Relationships (A)
Testability: ⚠️ Partial
Automation can:
- Check for correct use of semantic HTML (e.g.,
<table>
,<fieldset>
,<label>
). - Identify ARIA roles and relationships (e.g.,
aria-labelledby
,aria-describedby
).
Automation cannot:
- Confirm whether visual relationships (like grouping or hierarchy) are represented programmatically.
- Detect if semantics match the intended meaning.
SC 1.3.2 Meaningful Sequence (A)
Testability: ⚠️ Partial
Automation can:
- Analyze DOM order of elements.
- Detect visually overlapping items that might confuse sequence.
Automation cannot:
- Judge if the reading order makes sense to a user.
- Determine if semantic flow aligns with visual flow.
SC 1.3.3 Sensory Characteristics (A)
Testability: ⚠️ Partial
Automation can:
- Detect keywords like “see the red button” or “upper-left”.
- Flag possible sensory-only references.
Automation cannot:
- Understand whether those references are the only way of conveying instructions.
- Judge if equivalent non-sensory cues are present.
SC 1.3.4 Orientation (AA)
Testability: ⚠️ Partial
Automation can:
- Check CSS and viewport responsiveness.
- Confirm that content isn’t locked to one orientation.
Automation cannot:
- Confirm usability in both portrait and landscape modes.
- Detect visual issues or content loss when switching orientations.
SC 1.3.5 Identify Input Purpose (AA)
Testability: ⚠️ Partial
Automation can:
- Detect autocomplete attributes on
input
fields (e.g.,autocomplete="email"
). - Validate usage against known
input
purposes.
Automation cannot:
- Determine if the autocomplete value matches the field’s intended purpose.
- Evaluate whether user expectations are met.
SC 1.4.1 Use of Color (A)
Testability: ⚠️ Partial
Automation can:
- Detect cases where color is the only distinguishing feature.
- Flag form fields or charts using color keys.
Automation cannot:
- Understand if color meaning is also conveyed via shape, text, or pattern.
- Determine whether users can perceive the difference without color.
SC 1.4.2 Audio Control (A)
Testability: ⚠️ Partial
Automation can:
- Detect media elements set to autoplay with audio > 3 seconds.
- Identify if a control is present to pause/stop audio.
Automation cannot:
- Confirm the effectiveness or discoverability of the control.
- Detect if custom media players meet this need.
SC 1.4.3 Contrast (Minimum) (AA)
Testability: ✅ Auto
Automation can:
- Calculate contrast between text and background.
- Flag failures below 4.5:1 (or 3:1 for large text).
Automation cannot:
- Handle contrast testing over complex backgrounds (e.g., gradients, images).
- Account for user-adjusted styles or overlays.
SC 1.4.4 Resize Text (AA)
Testability: ⚠️ Partial
Automation can:
- Simulate zoom or large font scaling in test environments.
- Detect overlapping or cutoff text.
Automation cannot:
- Determine whether the layout remains usable after scaling.
- Evaluate if users can complete tasks at 200% zoom.
SC 1.4.5 Images of Text (AA)
Testability: ⚠️ Partial
Automation can:
- Detect
<img>
or CSS background images that contain visible text. - Identify image-based headings or buttons.
Automation cannot:
- Determine whether the image of text is essential.
- Judge whether real text could have been used instead.
SC 1.4.10 Reflow (AA)
Testability: ⚠️ Partial
Automation can:
- Simulate viewport resizing (e.g.,
320px
wide). - Detect horizontal scrolling or overflow.
Automation cannot:
- Verify whether all content remains usable.
- Assess layout issues affecting user task completion.
SC 1.4.11 Non-text Contrast (AA)
Testability: ⚠️ Partial
Automation can:
- Calculate contrast ratios for UI components (e.g., buttons, focus outlines).
- Detect contrast failures in icons or input borders.
Automation cannot:
- Recognize visual indicators that convey meaning.
- Confirm whether non-text elements are functionally important.
SC 1.4.12 Text Spacing (AA)
Testability: ⚠️ Partial
Automation can:
- Apply standard spacing overrides via CSS (e.g., line height, letter spacing).
- Detect overflow or layout breakage.
Automation cannot:
- Determine if content remains readable and usable under spacing changes.
- Validate manual readability and interaction.
SC 1.4.13 Content on Hover or Focus (AA)
Testability: ⚠️ Partial
Automation can:
- Detect some tooltips, popovers, or dropdowns triggered on hover/focus.
- Identify presence of dismiss buttons or escape key bindings.
Automation cannot:
- Determine if content is persistent, dismissible, or accessible via keyboard.
- Assess pointer stability or accidental dismissal.
SC 2.1.1 Keyboard (A)
Testability: ⚠️ Partial
Automation can:
- Identify focusable and interactive elements.
- Check for
tabindex
,aria-disabled
, or missing role.
Automation cannot:
- Confirm full usability by keyboard.
- Determine whether focus moves logically through the interface.
SC 2.1.2 No Keyboard Trap (A)
Testability: ⚠️ Partial
Automation can:
- Simulate basic keyboard navigation within known components.
- Identify focus indicators.
Automation cannot:
- Confirm whether a user can exit a control via keyboard.
- Evaluate navigation loops or missing Escape handlers.
SC 2.1.4 Character Key Shortcuts (A)
Testability: ⚠️ Partial
Automation can:
- Detect use of character key triggers (e.g.,
keydown
listeners). - Flag if they are bound to single keys without modifiers.
Automation cannot:
- Assess whether shortcuts interfere with assistive tech.
- Verify presence of disable or remap options.
SC 2.2.1 Timing Adjustable (A)
Testability: ⚠️ Partial
Automation can:
- Detect presence of timeouts or auto-refresh scripts.
- Identify timers in forms or interactive sessions.
Automation cannot:
- Confirm whether users have warnings or controls to adjust timing.
- Judge whether time limits are reasonable.
SC 2.2.2 Pause, Stop, Hide (A)
Testability: ⚠️ Partial
Automation can:
- Detect moving, blinking, scrolling, or auto-updating elements.
- Flag content with animation > 5 seconds.
Automation cannot:
- Verify that users have clear controls to pause/stop/hide content.
- Evaluate if motion disrupts user focus.
SC 2.3.1 Three Flashes or Below Threshold (A)
Testability: ✅ Auto
Automation can:
- Analyze animated or video content for flash frequency.
- Detect if content flashes more than 3 times per second.
Automation cannot:
- Identify all flashing content (especially custom JS/CSS animations).
- Determine whether flashing is within combined areas that could trigger seizures.
SC 2.4.1 Bypass Blocks (A)
Testability: ⚠️ Partial
Automation can:
- Detect presence of “skip to main content” links.
- Identify ARIA landmarks (
<main>
,<nav>
, etc.).
Automation cannot:
- Confirm that bypass links function correctly.
- Verify that repeated blocks are actually bypassed for users.
SC 2.4.2 Page Titled (A)
Testability: ⚠️ Partial
Automation can:
- Confirm presence of
<title>
in<head>
. - Check for duplicates or emptiness.
Automation cannot:
- Judge whether the title is descriptive or meaningful.
- Assess whether it accurately reflects page content.
SC 2.4.3 Focus Order (A)
Testability: ⚠️ Partial
Automation can:
- Read the DOM/tab order.
- Flag unusual jumps or unreachable elements.
Automation cannot:
- Evaluate whether the focus order matches visual/reading order.
- Confirm whether users can complete tasks logically by keyboard.
SC 2.4.4 Link Purpose (In Context) (A)
Testability: ⚠️ Partial
Automation can:
- Read link text and surrounding content.
- Flag vague terms like “click here” or “read more”.
Automation cannot:
- Determine true link purpose from contextual meaning.
- Verify if users can understand link destination from context.
SC 2.4.5 Multiple Ways (AA)
Testability: ⚠️ Partial
Automation can:
- Detect presence of site search, sitemaps, or navigation menus.
- Flag pages with only one navigation option.
Automation cannot:
- Evaluate usefulness of navigation options.
- Confirm whether users can actually find other pages via those methods.
SC 2.4.6 Headings and Labels (AA)
Testability: ⚠️ Partial
Automation can:
- Check presence of headings, labels, and form field descriptors.
- Verify heading structure and nesting.
Automation cannot:
- Confirm clarity or descriptiveness of labels/headings.
- Assess if headings match content purpose or topic.
SC 2.4.7 Focus Visible (AA)
Testability: ⚠️ Partial
Automation can:
- Confirm presence of visible focus indicators via CSS.
- Detect outline suppression (e.g.,
outline:none
).
Automation cannot:
- Determine if the indicator is visible enough for real users.
- Assess contrast, motion, or user perceptibility of the focus.
SC 2.4.11 Focus Not Obscured (Minimum) (AA)
Testability: ⚠️ Partial
Automation can:
- Detect if focused elements have
overflow:hidden
or are offscreen. - Identify layering issues that might hide focus.
Automation cannot:
- Confirm real visual obstruction (e.g., by sticky headers).
- Test whether users can see the current focus during use.
SC 2.5.1 Pointer Gestures (A)
Testability: ✅ Auto
Automation can:
- Detect multi-point or path-based gestures.
- Confirm availability of single-point alternatives.
Automation cannot:
- Judge intended meaning of gestures.
- Assess usability for users with limited dexterity.
SC 2.5.2 Pointer Cancellation (A)
Testability: ✅ Auto
Automation can:
- Check that actions only trigger on
mouseup
orcompletion
events. - Verify support for cancel or undo.
Automation cannot:
- Evaluate user experience when cancellation is triggered.
- Confirm whether accidental taps are easily reversible.
SC 2.5.3 Label in Name (A)
Testability: ⚠️ Partial
Automation can:
- Compare the visible label with the accessible name (
aria-label
,aria-labelledby
). - Flag mismatches where visible text is not part of the accessible name.
Automation cannot:
- Determine if mismatches cause confusion or disorientation.
- Account for intentional differences that are still accessible.
SC 2.5.4 Motion Actuation (A)
Testability: ✅ Auto
Automation can:
- Detect usage of device motion sensors (e.g.,
DeviceMotionEvent
,orientationchange
). - Confirm availability of alternate input methods.
Automation cannot:
- Test for usability of motion alternatives.
- Validate cobformance on real physical devices.
SC 2.5.7 Dragging Movements (AA)
Testability: ⚠️ Partial
Automation can:
- Detect draggable elements or use of drag-and-drop APIs.
- Flag lack of keyboard-accessible alternatives.
Automation cannot:
- Confirm whether the keyboard equivalent provides full functionality.
- Assess if drag actions are usable with assistive tech.
SC 2.5.8 Target Size (Minimum) (AA)
Testability: ⚠️ Partial
Automation can:
- Measure dimensions of clickable/touchable elements.
- Check minimum size threshold (
24px
×24px
).
Automation cannot:
- Account for proximity to other controls.
- Evaluate whether exceptions apply (e.g., inline links, user-agent controls).
SC 3.1.1 Language of Page (A)
Testability: ⚠️ Partial
Automation can:
-
- Detect
lang
attribute on<html>
. - Compare it to known language codes.
- Detect
Automation cannot:
- Confirm if the declared language matches the actual content.
- Handle pages with mixed or incorrect language declarations.
SC 3.1.2 Language of Parts (AA)
Testability: ⚠️ Partial
Automation can:
- Detect
lang
attributes on elements with inline language changes. - Flag missing or invalid
lang
attributes.
Automation cannot:
- Confirm whether language changes are semantically accurate.
- Detect whether user agents (like screen readers) announce changes correctly.
SC 3.2.1 On Focus (A)
Testability: ⚠️ Partial
Automation can:
- Detect scripts that trigger actions on focus events (e.g.,
onfocus
). - Flag
input
elements that invoke DOM changes on focus.
Automation cannot:
- Judge whether those changes are unexpected or disruptive.
- Evaluate actual user experience caused by focus-triggered behavior.
SC 3.2.2 On Input (A)
Testability: ⚠️ Partial
Automation can:
- Detect form elements that trigger changes on
onchange
,oninput
, etc. - Flag when changes occur without user confirmation.
Automation cannot:
- Assess whether the triggered action is unexpected or confusing.
- Judge if users have the ability to review and correct before submission.
SC 3.2.3 Consistent Navigation (AA)
Testability: ✅ Auto
Automation can:
- Detect repeated navigation menus or regions across pages.
- Compare DOM structure of navigation blocks.
Automation cannot:
- Confirm whether small visual differences impact usability.
- Determine if order changes cause disorientation.
SC 3.2.4 Consistent Identification (AA)
Testability: ⚠️ Partial
Automation can:
- Compare labels, roles, and accessible names of components across views.
- Identify differences in naming or function.
Automation cannot:
- Determine if functionally identical controls are inconsistently identified.
- Evaluate whether inconsistencies confuse users.
SC 3.2.6 Consistent Help (A)
Testability: ⚠️Partial
Automation can:
- Detect presence of help mechanisms across pages, such as:
- Help links (e.g., “Need help?”, “Contact support”)
- Tooltips, inline instructions, or chat buttons
- Check for consistency in placement (e.g., always in header/footer/sidebar)
- Flag pages where help is missing but expected (based on a defined pattern)
Automation cannot:
- Determine whether the help provided is actually helpful, usable, or understandable
- Judge whether the help mechanism remains consistent in meaning across different contexts
- Confirm that the help element supports the task the user is trying to complete
SC 3.3.1 Error Identification (A)
Testability: ⚠️ Partial
Automation can:
- Detect form fields with validation rules.
- Identify presence of ARIA error messaging (
aria-invalid
,aria-describedby
).
Automation cannot:
- Confirm whether error messages are clear and helpful.
- Determine if all errors are surfaced to the user in an accessible way.
SC 3.3.2 Labels or Instructions (A)
Testability: ⚠️ Partial
Automation can:
- Detect presence of labels via
<label>
oraria-label
. - Flag missing instructions for required fields.
Automation cannot:
- Judge whether instructions are understandable or sufficient.
- Confirm if labels convey correct context.
SC 3.3.3 Error Suggestion (AA)
Testability: ⚠️ Partial
Automation can:
- Detect forms with required fields and validation.
- Identify whether suggestions are surfaced in markup.
Automation cannot:
- Judge usefulness or accuracy of suggestions.
- Evaluate if suggestions are clear enough to help users correct input.
SC 3.3.4 Error Prevention (Legal, Financial, Data) (AA)
Testability: ⚠️ Partial
Automation can:
- Detect confirmations, summaries, or
confirm()
dialogs. - Check for
autocomplete="off"
or forms without undo/review options.
Automation cannot:
- Verify whether users are given a real opportunity to review.
- Confirm if critical actions are truly reversible or clearly explained.
SC 3.3.7 Redundant Entry (A)
Testability: ⚠️Partial
Automation can:
- Detect repeated fields with identical name or label attributes within a form
- Identify previously entered values that are re-requested on subsequent steps/pages
- Check for presence of autofill features or reuse of data via
autocomplete
, session storage, or JavaScript
Automation cannot:
- Confirm whether the user was already asked to enter the same information earlier in the process
- Determine if the repeated entry is necessary due to security or workflow reasons
- Evaluate whether a mechanism is provided to avoid requiring re-entry (e.g., “Same as billing address” checkbox)
SC 3.3.8 Accessible Authentication (Minimum) (A)
Testability: ⚠️Partial
Automation can:
- Detect the presence of password fields, security questions, CAPTCHAs, and multi-factor authentication (MFA) inputs.
- Flag authentication processes requiring memory recall (e.g., user must enter a known password or type in a one-time code).
- Identify whether autocomplete is disabled on login forms.
Automation cannot:
- Confirm whether alternatives (e.g., copy/paste, password managers, biometric login) are supported and usable.
- Determine if the task involves a cognitive function test without offering an accessible method.
- Judge whether the overall authentication process excludes users with cognitive disabilities.
SC 4.1.1 Parsing (Obsolete and removed)
This criterion was originally adopted to address problems that assistive technology had directly parsing HTML. Assistive technology no longer has any need to directly parse HTML. Consequently, these problems either no longer exist or are addressed by other criteria. This criterion no longer has utility and is removed.
SC 4.1.2 Name, Role, Value (A)
Testability: ⚠️ Partial
Automation can:
- Verify that interactive elements expose name, role, and value via accessibility APIs.
- Detect missing ARIA roles or attributes.
Automation cannot:
- Evaluate correctness of those roles and attributes.
- Ensure that dynamic elements update live values properly (e.g., via ARIA live regions).
SC 4.1.3 Status Messages (AA)
Testability: ⚠️ Partial
Automation can:
- Detect ARIA roles like
alert
,status
,log
. - Confirm whether content changes are exposed programmatically.
Automation cannot:
- Judge if the message is clear or relevant.
- Verify whether users actually perceive the status update (e.g., via screen reader).
Blue Oyster Cult – (Don’t Fear) The Reaper
Lyrics
All our times have come Here but now they're gone Seasons don't fear the reaper Nor do the wind, the sun or the rain We can be like they are Come on, baby (don't fear the reaper) Baby, take my hand (don't fear the reaper) We'll be able to fly (don't fear the reaper) Baby, I'm your man La, la, la, la, la La, la, la, la, la Valentine is done Here but now they're gone Romeo and Juliet Are together in eternity (Romeo and Juliet) 40, 000 men and women everyday (like Romeo and Juliet) 40, 000 men and women everyday (redefine happiness) Another 40, 000 coming everyday (we can be like they are) Come on, baby (don't fear the reaper) Baby, take my hand (don't fear the reaper) We'll be able to fly (don't fear the reaper) Baby, I'm your man La, la, la, la, la La, la, la, la, la Love of two is one Here but now they're gone Came the last night of sadness And it was clear she couldn't go on Then the door was open and the wind appeared The candles blew and then disappeared The curtains flew and then he appeared Saying don't be afraid Come on, baby (and she had no fear) And she ran to him (then they started to fly) They looked backward and said goodbye (she had become like they are) She had taken his hand (she had become like they are) Come on, baby (don't fear the reaper)
3 replies on “mind the WCAG automation gap”
Thank you, dear Steve! Tools provide objective analyses, but human judgment is essential for evaluating results meaningfully and making well-founded decisions.
You hit the nail on the head. While automated testing tools can detect, check, identify, calculate, simulate, and analyze, humans can confirm, determine, evaluate, judge, understand, and verify.
[…] Updated: 28th March 2025 – aligned partial/automated designations with the categorisation in a later article: mind the WCAG automation gap […]
[…] Source: mind the WCAG automation gap – HTML Accessibility […]