Upgrade to Pro — share decks privately, control downloads, hide ads and more …

These (still) aren't the SCs you're looking for...

These (still) aren't the SCs you're looking for ... (mis)adventures in WCAG 2.x interpretation and audits / #a11yTO / 19 October 2023

WCAG is supposed to give us a reasonably objective way of saying whether or not the sites we are building/auditing are "accessible" (to a particular baseline). However, they are only as useful as our understanding and interpretation of the guidelines' normative text. And, of course, it is not perfect - with some omissions, handwaving, and straight-up loopholes. So where does this leave developers and auditors?

In this talk - a reprise of a previous talk, now updated to cover new SCs from WCAG 2.2 - Patrick may not have all the answers, but he'll have a good rant around the subject anyway...

Patrick H. Lauke

October 19, 2023
Tweet

More Decks by Patrick H. Lauke

Other Decks in Technology

Transcript

  1. These (still) aren't the SCs you're looking for … (mis)adventures

    in WCAG 2.x interpretation and audits Patrick H. Lauke / a11yTO / 19 October 2023
  2. about me … ▪  principal accessibility specialist at TetraLogical ▪

     previously at The Paciello Group (now TPGi) ▪  occasional W3C AGWG member ▪  WCAG trash panda
  3. déjà vu? you may have already seen an earlier version

    of this talk … even years later, the same question still bubbles up (on mailing lists, a11ySlack, mastodon, …)
  4. far too often, auditors clearly dislike something, and look for

    a justification to fail it … and I get it … sometimes it's just to show how smart we are
  5. overstep the boundaries of WCAG SCs claim something has to

    be fixed/changed "to pass WCAG" when it normatively doesn't
  6. we are not lawyers (or judges) but our audits and

    evaluations often have some legal dimension to them. ▪  evaluations should be as objective as possible ▪  evaluations should be consistent … of course, this is easier said than done
  7. WCAG is built on the idea that success criteria can

    be evaluated clearly, unambiguously and consistently… … but that's not always the case
  8. with WCAG 2.2 we now have 9 more SCs! …

    just more potential for confusion and misinterpretation?
  9. WCAG success criteria are often misunderstood and/or misinterpreted leads to

    wrong, or at least inconsistent, error reporting
  10. 2.4.6 Headings and Labels (AA) Headings and labels describe topic

    or purpose. this doesn't mandate the use of headings and labels … only that if a page uses headings and labels, they must be descriptive. it also doesn't mandate that headings and labels be correctly marked-up - that's the job of 1.3.1 Info and Relationships and (where it affects "accessible name" of controls) 4.1.2 Name, Role, Value . lastly, if labels aren't there, it's a 3.3.2 Labels or Instructions problem. “
  11. 3.3.2 Labels or Instructions (A) Labels or instructions are provided

    when content requires user input. again, this doesn't mandate that labels be marked-up as <label> and properly associated with form controls - that's covered by 1.3.1 Info and Relationships and (where it affects "accessible name" of controls) 4.1.2 Name, Role, Value . “
  12. <input type="text"> ▪   passes 2.4.6 Headings and Labels ▪

      fails 3.3.2 Labels or Instructions ▪   fails 4.1.2 Name, Role, Value
  13. <p>First name</p> <input type="text"> ▪   passes 2.4.6 Headings and

    Labels ▪   passes 3.3.2 Labels or Instructions ▪   fails 1.3.1 Info and Relationships ▪   fails 2.5.3 Label in Name ▪   fails 4.1.2 Name, Role, Value
  14. <p>First name</p> <input type="text" aria-label="First name" > ▪   passes

    2.4.6 Headings and Labels ▪   passes 3.3.2 Labels or Instructions ▪   passes 2.5.3 Label in Name ▪   passes 4.1.2 Name, Role, Value ▪   passes (arguably) 1.3.1 Info and Relationships
  15. 2.1.1 Keyboard (A) All functionality of the content is operable

    through a keyboard interface […] doesn't say anything about which keys are needed to operate controls/functionality “
  16. <a href="#" onclick="…" role="button">fake button</a> ▪   passes 2.1.1 Keyboard

    even though it doesn't respond to SPACE like real button would
  17. <a href="#" role="button">Activate using 'b'</a> .addEventListener('keypress', function(e) { if (e.key

    == 'b') { /* do something */ } }) ▪   passes 2.1.1 Keyboard even though it can only be triggered using the letter b
  18. 1.3.3 Sensory Characteristics (A) Instructions provided for understanding and operating

    content do not rely solely on sensory characteristics of components such as shape, color, size, visual location, orientation, or sound. this only relates specifically to instructions … and not whether or not sensory characteristics are used for content - this is covered by other SCs, like 1.4.1 Use of Color or even 1.1.1 Non-Text Content . Fixes for Understanding 1.3.3 Sensory Characteristics #767 “
  19. example: buttons with shapes or colours ▪   fail 1.1.1

    Non-text Content (if there's no hidden text / accessible name) ▪   fail 1.4.1 Use of Color for the second set ▪   fail 4.1.2 Name, Role, Value (if there's no accessible name) ▪   pass 1.3.3 Sensory Characteristics as there are no instructions
  20. example: buttons with shapes or colours ▪   fail 1.1.1

    Non-text Content (if there's no hidden text / accessible name) ▪   fail 1.4.1 Use of Color for the second set ▪   fail 4.1.2 Name, Role, Value (if there's no accessible name) ▪   fail 1.3.3 Sensory Characteristics as there are instructions
  21. 1.4.1 Use of Color (A) Color is not used as

    the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element. both lines contain a link. but only in the first line is colour used. the first cases fails 1.4.1 Use of Color, but the second passes auditors pondering failing the previous example for not using colour … “
  22. 1.3.1 Info and Relationships (A) Information, structure, and relationships conveyed

    through presentation can be programmatically determined or are available in text. auditors pondering failing the previous example for not conveying things through presentation … “
  23. cascade of fail <a href="…"> <img src="…"> </a> fails multiple

    criteria , in sequence: ▪  the image itself fails 1.1.1 Non-text content ▪  as a result, link lacks accessible name and fails 4.1.2 Name, Role, Value ▪  arguably, link also fails 2.4.4 Link Purpose (In Context) need consistency in how this is reported
  24. 3.1.1 Language of Page (A) The default human language of

    each Web page can be programmatically determined. 3.1.2 Language of Parts (AA) The human language of each passage or phrase in the content can be programmatically determined […] if you can't determine the language of the page, then you also can't determine the language of each passage or phrase. fail one, and you automatically fail the other … “ “
  25. minimum and enhanced ▪   1.4.3 Contrast (Minimum) → 1.4.6

    Contrast (Enhanced) ▪   2.4.11 Focus Not Obscured (Minimum) → 2.4.12 Focus Not Obscured (Enhanced) ▪   2.5.8 Target Size (Minimum) → 2.5.5 Target Size (Enhanced) ▪   3.3.8 Accessible Authentication (Minimum) → 3.3.9 Accessible Authentication (Enhanced) fail one, and you automatically fail the other … need consistency in how this is reported (if you care about AAA)
  26. more problematic are issues caused by WCAG SCs that are

    vague , incomplete or otherwise lacking
  27. subjective interpretation? ▪   1.1.1 All non-text content […] has

    a text alternative that serves the equivalent purpose - but what's the purpose? ▪   1.2.2 Captions are provided … - but do these captions need to be exact, identify speakers, etc.? ▪   1.3.1 Information, structure, and relationships conveyed through presentation […] - where do you draw the line? ▪   2.4.6 Headings and labels describe topic or purpose - what's "descriptive" exactly?
  28. what is a list? <a href="/">home</a> <a href="…">products</a> <a href="…">contact</a>

    do you fail 1.3.1 Info and Relationships because they didn't wrap this in a <ul> , even if this isn't conveyed through presentation ? if you look hard enough, it's lists all the way down turtles
  29. 2.4.4 Link Purpose (In Context) (AA) The purpose of each

    link can be determined from the link text alone or from the link text together with its programmatically determined link context […] what counts as "programmatically determined link context"? do preceding headings count? “
  30. 2.4.7 Focus Visible (AA) Any keyboard operable user interface has

    a mode of operation where the keyboard focus indicator is visible. but what does visible mean? it's not normatively defined… “
  31. WCAG 2.1 decided not to modify 2.0 SCs, patched loopholes

    with more SCs but these new SCs also ended up having some loopholes
  32. 1.4.11 Non-text Contrast (AA) The visual presentation of the following

    have a contrast ratio of at least 3:1 against adjacent color(s): ▪  User Interface Components: Visual information required to identify user interface components and states […] ▪  Graphical Objects: […] “
  33. … but we'll fix focus WCAG 2.2? 2.4.11 Focus Appearance

    (Minimum) (Level AA) 2.4.12 Focus Appearance (Enhanced) (Level AAA)
  34. … but we'll fix focus WCAG 2.2! 2.4.13 Focus Appearance

    (Level AAA) Only at Level AAA … where success criteria go to die … 2.4.11 Focus Appearance (Minimum) (Level AA) 2.4.12 Focus Appearance (Enhanced) (Level AAA)
  35. 2.4.11 Focus Not Obscured (Minimum) (AA) New in WCAG 2.2

    When a user interface component receives keyboard focus, the component is not entirely hidden due to author-created content. “
  36. classic example: sticky header … this passes 2.4.11 Focus Not

    Obscured (Minimum) (AA) but how far can we take the "not entirely hidden" aspect?
  37. arguably … not entirely hidden (some disagree whether or not

    focus indicator is part of the user interface component)
  38. 1.4.1 Use of Color (A) Color is not used as

    the only visual means of conveying information , indicating an action, prompting a response, or distinguishing a visual element. “
  39. if your focus indication just changes colour, 1.4.1 likely applies

    If content is conveyed through the use of colors that differ not only in their hue, but that also have a significant difference in lightness, then this counts as an additional visual distinction, as long as the difference in relative luminance between the colors leads to a contrast ratio of 3:1 or greater. used to be buried in technique F73, now in understanding for 1.4.1 (#1500) “
  40. beware: if you look hard enough, everything is a use

    of color . is it essential for conveying information or just eye candy?
  41. SCs that are overly specific … and then end up

    only applying to very specific cases
  42. 1.4.10 Reflow (AA) Content can be presented without loss of

    information or functionality, and without requiring scrolling in two dimensions for: ▪  Vertical scrolling content at a width equivalent to 320 CSS pixels ▪  Horizontal scrolling content at a height equivalent to 256 CSS pixels […] to help low vision users. should ideally have been "use responsive design" instead, it was watered down to 400% zoom on a 1280×1024 display … and now only normatively applies at those exact values “
  43. 1.4.12 Text Spacing (AA) In content implemented using markup languages

    that support the following text style properties, no loss of content or functionality occurs by setting all of the following […]: ▪  Line height (line spacing) to at least 1.5 times the font size ▪  Spacing following paragraphs to at least 2 times the font size ▪  Letter spacing (tracking) to at least 0.12 times the font size ▪  Word spacing to at least 0.16 times the font size […] only those exact values and over do you test the "at least" part here, and up to which values? what if user changes just a few (e.g. just letter spacing) “
  44. this bookmarklet didn't work to change text styles … can

    I fail this? no you can't … the SC doesn't care if a user can or can't change the metrics, or if a particular bookmarklet or method doesn't work. only that if the metrics are indeed changed, then content doesn't become unreadable or unusable. Understanding 1.4.12: clarify the intent and author responsibility #1687 “
  45. 3.3.8 Accessible Authentication (Minimum) (AA) New in WCAG 2.2 A

    cognitive function test (such as remembering a password or solving a puzzle) is not required for any step in an authentication process […] “
  46. 2.5.8 Target Size (Minimum) (AA) New in WCAG 2.2 The

    size of the target for pointer inputs is at least 24 by 24 CSS pixels […] at first glance, the SC defines a minimum target size (it says so in the title) “
  47. 2.5.8 Target Size (Minimum) (AA) New in WCAG 2.2 The

    size of the target for pointer inputs is at least 24 by 24 CSS pixels except where: ▪  Spacing: Undersized targets (those less than 24 by 24 CSS pixels) are positioned so that if a 24 CSS pixel diameter circle is centered on the bounding box of each, the circles do not intersect another target or the circle for another undersized target … the first exception turns this into Target Spacing (Minimum) “
  48. 3.2.6 Consistent Help (A) New in WCAG 2.2 If a

    Web page contains any of the following help mechanisms, and those mechanisms are repeated on multiple Web pages within a set of Web pages, they occur in the same order relative to other page content , unless a change is initiated by the user […]: the understanding document goes in depth listing and explaining help mechanisms, but the SC doesn't actually require any help mechanisms to be present at all … “
  49. relative order here means just means a consistent "focus/reading order"

    "If the help item is visually in a different location, but in the same serial order, that is not helpful from a user's point of view, but it would not fail this criterion." “
  50. even after years of auditing, I sometimes have weird moments

    of realisation seeing SCs, and what they say/apply to, in a new light
  51. no weighting given to impact or frequency of a particular

    fail, or how bad a failure is off the mark sometime, you just want to say something's a minor or soft fail , but distinction doesn't exist
  52. loopholes , omissions and subjective requirements can and will be

    exploited auditors aren't the only ones who try to find these gaps …
  53. frustration: most efforts has been going towards new WCAG 2.2

    SCs rather than fixing what's broken in 2.0/2.1
  54. w3.org/TR/wcag-3.0 … but still very early days and it will

    be quite some time before legislation references 3.0 once it's actually a ratified recommendation …
  55. don't creatively reinterpret what an SC says to fit your

    agenda whether you're a developer or an auditor doing an evaluation
  56. “but unless it's reported as a WCAG failure the client

    won't change it” then you have more fundamental problem …
  57. as auditor, you do your client a disservice by not

    making clear what is and isn't a normative failure what happens when a clued-up client rightly challenges your claim? all your other results lose credibility!
  58. be conservative in your pass / fail assessments document your

    hesitation, clearly state when something's "more of a suggestion" than a hard failure