Skip to content

Update branch from main#5118

Open
bruce-usab wants to merge 30 commits into
wcag2ict-1_3_6-editorialfrom
main
Open

Update branch from main#5118
bruce-usab wants to merge 30 commits into
wcag2ict-1_3_6-editorialfrom
main

Conversation

@bruce-usab
Copy link
Copy Markdown
Contributor

No description provided.

fstrr and others added 18 commits April 27, 2026 15:36
## ARIA18
Updated HTML snippet to use updated working example code

Working example:
1. remove jquery
2. add `viewport`
3. update css to use modern positioning
4. add `inert` attribute

## ARIA 19

1. Removed jQuery
2. Add `autocomplete` attributes
3. Removed 404 resource link
4. Removed old editors CSS link
6. Added `code` tags
7. Updated the list of errors to use a list instead of 3 paragraphs

## ARIA21

1. Remove outdated content
2. Update examples to add `autocomplete` attributes
3. Updated resource links
4. Split the example code into separate `pre` blocks

## Identifying Errors In Data Format example

1. removed the jQuery and rewrote using vanilla JavaScript
2. removed several unused functions
3. simplified the date validity field
4. added a replacement image for the one that was missing
5. removed an unnecessary `alert` role
6. moved explanatory content to the technique
8. removed out of date assistive technology information



Previews:

* https://deploy-preview-4981--wcag2.netlify.app/techniques/aria/aria18
* https://deploy-preview-4981--wcag2.netlify.app/techniques/aria/aria19
* https://deploy-preview-4981--wcag2.netlify.app/techniques/aria/aria21
*
https://deploy-preview-4981--wcag2.netlify.app/working-examples/aria-alert-identify-errors/
*
https://deploy-preview-4981--wcag2.netlify.app/working-examples/aria-alertdialog-identify-errors/
*
https://deploy-preview-4981--wcag2.netlify.app/working-examples/aria-invalid-data-format/
*
https://deploy-preview-4981--wcag2.netlify.app/working-examples/aria-invalid-required-fields/

---------

Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
Co-authored-by: Detlev Fischer <df@3needs.org>
Co-authored-by: Adam Page <adam@adampage.net>
Co-authored-by: Giacomo Petri <giacomo.petri@usablenet.com>
Co-authored-by: Bruce Bailey <bruce@bailey4.us>
Co-authored-by: Kenneth G. Franqueiro <kfranqueiro@users.noreply.github.com>
Co-authored-by: chaals <chaals@users.noreply.github.com>
Co-authored-by: Alastair Campbell <ac@alastc.com>
Co-authored-by: Matt Garrish <mattgarrish@users.noreply.github.com>
Co-authored-by: Lori Oakley <32885548+ljoakley@users.noreply.github.com>
…k F109, add figures and mention "other" cognitive tests (#4832)

* rename "Authentication Approaches" to "Login forms" - the former
implies that this section will start to list approaches, when in fact it
simply talks about login forms
* tweak the language to better cover/differentiate user agents and
third-party password managers
* explicitly mention things that would not be acceptable - preventing
browser/password managers from automatically populating fields, *or*
stopping copy/paste
* remove the test step mention about pasting OR auto-filling in F109;
this failure technique is in fact orthogonal to what is being discussed
in #3550 - the point of this failure technique is about the format of
the entry, not about pasting versus auto-filling, but removing this
apparent ambiguity should help
* add illustrative images to F109 to make it clearer what the problem is
that the failure refers to
* add illustrative images to both 3.3.8 and 3.3.9 understanding
* add a new section to 3.3.8 understanding about other types of
cognitive tests (math test, logic test, etc)
https://deploy-preview-4832--wcag2.netlify.app/understanding/accessible-authentication-minimum#other-cognitive-tests

Closes #3550

Previews:

*
https://deploy-preview-4832--wcag2.netlify.app/understanding/accessible-authentication-minimum
*
https://deploy-preview-4832--wcag2.netlify.app/techniques/failures/f109
*
https://deploy-preview-4832--wcag2.netlify.app/understanding/accessible-authentication-enhanced
This PR looks to clarify the third advisory technique bullet for SC
1.3.6 Identify Purpose - aiming to close #2545

The previous text for the bullet just stated:
>Using aria-invalid and aria-required

This PR extends this text to mention that one could use the `required`
attribute _or_ those aria attributes to identify required fields and/or
those with validation errors. Thus, tying why the attributes are
mentioned to identifying the states of these fields.

I did not add this advisory technique to 1.3.5 Input Purpose, as was
mentioned in the comments for the original issue. IMO, I don't think
it's necessary to mention the concept of required in that SC. But, if
others in the backlog taskforce disagree, it'd be easy enough to add to
this Pr...


[Preview](https://deploy-preview-4663--wcag2.netlify.app/understanding/identify-purpose#techniques)

---------

Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
Co-authored-by: Bruce Bailey <bruce@bailey4.us>
Co-authored-by: Adam Page <adam@adampage.net>
)

This fixes a bug in the logic added in #4170, which looked up errata for
terms using their auto-generated ID in the Understanding docs, rather
than by their explicit ID as defined in the `guidelines` folder. These
are sometimes but not always the same, so some lookups would fail.
…ces (#4817)

Closes #4444

Preview:
https://deploy-preview-4817--wcag2.netlify.app/understanding/pause-stop-hide
(last note before the "Benefits" section)

---------

Co-authored-by: Adam Page <adam@adampage.net>
)

While ideally we'd want to actually change the normative wording of the
SC (see #4952), if that fails for now,
this PR adds a note to 4.1.3 Status Messages understanding that
handwaves "when we say roles and properties, we also meant accessibility
API access". It also adds a new technique and working example
demonstrating the use of `ariaNotify`.

/cc @adampage @scottaohara @fstrr 

Previews:

*
https://deploy-preview-5079--wcag2.netlify.app/understanding/status-messages
(note at the end of "Intent")
* ARIA27
https://deploy-preview-5079--wcag2.netlify.app/techniques/aria/aria27
* working example
https://deploy-preview-5079--wcag2.netlify.app/working-examples/aria-notify-status-message/

---------

Co-authored-by: Adam Page <adam@adampage.net>
Co-authored-by: Bruce Bailey <bruce@bailey4.us>
Co-authored-by: Kenneth G. Franqueiro <kfranqueiro@users.noreply.github.com>
Ports over most of the ideas from #4316,
but extends/clarifies them further.

Expands on what "standard exit methods" are (and the fact that WCAG
doesn't actually normatively define these, that they're hardware/OS/UA
dependent, and that authors/auditors will need to use their judgement
here). Also reiterates that even if untrapping involves "non-standard"
methods, that's fine as long as users are informed how to do it (but
still needs to be using the keyboard).

Also cleans up the markup a bit.

Tweaks the modal dialog example (focusing on the focus trapping, rather
than the opposite - which parts of the page don't receive focus anymore)
and adds a new example for Rich Text Editors.

Supersedes #4316 (as that PR didn't allow for changes to be pushed to
it, including rebasing it to the latest main branch)

Preview:
https://deploy-preview-4726--wcag2.netlify.app/understanding/no-keyboard-trap
…#4814)

Whether or not a text alternative is visually/visibly presented to users
when CSS is disabled/unavailable is beyond the scope of 1.1.1. Rewording
the last failure check to make the original intention clearer.

x-ref #4660 (comment)

EDIT: after some further consideration, this PR also:

* changes the wording throughout away from "important information"
* retitle the technique
* in the tests, it adds the caveat that the information conveyed by the
image is only of interest if it is not already conveyed elsewhere on the
page
* make test step 2 positive rather than negative, and amend the expected
result, to make it more easily understandable

https://deploy-preview-4814--wcag2.netlify.app/techniques/failures/f3

---------

Co-authored-by: Adam Page <adam@adampage.net>
Co-authored-by: Bruce Bailey <bruce@bailey4.us>
This short "in passing" mention in a note about CSS background images
appears to introduce a whole new normative requirement by the backdoor,
in a technique note, which effectively fails sites that don't provide
both a background colour AND background image in their CSS, because
users MAY have changed their browser not to load images.

This is not covered anywhere else in WCAG, and in many other places WCAG
explicitly does NOT care about how users may have modified/changed their
browser settings. Not even 1.1.1 mentions the scenario as a particular
reason/concern. This note oversteps its remit.

EDIT: reworked this PR to only remove/amend the apparent normative
requirement to define BOTH a background image AND background colour -
replaced with a note about contrast testing. Further, this PR now
corrects the inaccurate section about inherited color/background
(background is not inherited - if not defined, an element has a
*transparent* background, so what counts is that at least one of the
ancestors of the element has a background

x-ref #4660 (comment)

preview:
https://deploy-preview-4823--wcag2.netlify.app/techniques/failures/f24

---------

Co-authored-by: Adam Page <adam@adampage.net>
…ive) (#5037)

single word is more common in the wild, and used more often in WCAG and
its documentation than the two-word variant

noticed as part of work on #4843

there is also a single instance in the normative definition for single
pointer. will file a separate editorial erratum PR for that (see
#5038)
Noticed as part of the work on #4832

This adds the "Figure X..." part to all figure captions in techniques
(this currently only happens in understanding pages)

Closes #5061

Preview example:
https://deploy-preview-5062--wcag2.netlify.app/techniques/failures/f69
(compare to https://www.w3.org/WAI/WCAG22/Techniques/failures/F69)
redo of #2899 - while the "black/white
colour blindness" part has since been fixed, this adds the idea that
links only distinguished by colour can be difficult to distinguish for
everybody.

Preview:
https://deploy-preview-4887--wcag2.netlify.app/techniques/general/g183
https://www.w3.org/WAI/WCAG22/Techniques/css/C41#tests

> The required change of contrast for Focus Appearance (Minimum) is 3:1,
this technique goes slightly beyond the minumum requirement.

The success criterion "Focus Appearance (Minimum)" was renamed "Focus
Appearance," and "Focus Appearance (Enhanced)" was deleted.
Therefore, the change of contrast ratio shown in the procedure should be
3:1 instead of 4.5:1.

EDIT by @patrickhlauke: also, while here, updated the CSS code sample to
match the following image

---------

Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
Co-authored-by: Adam Page <adam@adampage.net>
…hniques (#5002)

As I constantly find myself having to explain to some folks that
techniques are just informative (the amount of times I had to explain
that even if a site doesn't use a particular documented technique,
that's fine as long as the actual ask of the success criterion has been
satisfied), this adds a standard boxout/disclaimer/note at the top of
all techniques pages. This should catch folks who just "stumble"
directly across a technique (from a search engine result or similar).

To go with it, this also expands the explanation given in the existing
boxouts on the techniques index page and the about page.

Closes #1567
Closes #3469

Previews:

* the top of the techniques index page "Summary" boxout
https://deploy-preview-5002--wcag2.netlify.app/techniques/
* [Diff from current
index](https://services.w3.org/htmldiff?doc1=https%3A%2F%2Fwww.w3.org%2FWAI%2FWCAG22%2FTechniques%2F&doc2=https%3A%2F%2Fdeploy-preview-5002--wcag2.netlify.app%2Ftechniques%2F)
* ditto at the top of the "About techniques" page
https://deploy-preview-5002--wcag2.netlify.app/techniques/about
* [Diff from current About
page](https://services.w3.org/htmldiff?doc1=https%3A%2F%2Fwww.w3.org%2FWAI%2FWCAG22%2FTechniques%2Fabout&doc2=https%3A%2F%2Fdeploy-preview-5002--wcag2.netlify.app%2Ftechniques%2Fabout)
* random example of one of the positive techniques
https://deploy-preview-5002--wcag2.netlify.app/techniques/aria/aria1
* random example of a failure technique
https://deploy-preview-5002--wcag2.netlify.app/techniques/failures/f1

---------

Co-authored-by: Kevin White <kevin@w3.org>
Wanted to follow up on
#2136

It isn't clear that it is a good example. Often folks find examples
where there are problems vs examples of it working.

---------

Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
@netlify
Copy link
Copy Markdown

netlify Bot commented May 14, 2026

Deploy Preview for wcag2 ready!

Name Link
🔨 Latest commit 135e7d3
🔍 Latest deploy log https://app.netlify.com/projects/wcag2/deploys/6a22f1bdc4c24200085faeca
😎 Deploy Preview https://deploy-preview-5118--wcag2.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

kfranqueiro and others added 11 commits May 18, 2026 18:15
This removes instances of words that have accidentally been written
twice in a row.

Kevin flagged one of these to me, so I ran a couple of RegExp searches
to find others.
…derstanding (#4402)

While exempting text or non-text that is part of a logo/logotype makes
sense (due to some companies' strict corporate identity requirements),
it's nonetheless problematic when these logos/logotypes act as links of
buttons.

These notes try to clarify the situation ... for 1.4.3 and 1.4.6 we can
only suggest a best practice of - if possible - choosing an alternative
that is still allowed by the CI/brand guidelines, or at the very least
an additional link/control with the same purpose and with sufficient
contrast.

This part of the original PR has been split out into a separate PR
#5113
> For 1.4.11 there is a wrinkle here because the SC distinguishes
between user interface controls and graphical objects. Logos on their
own count as graphical objects, and if the CI/brand guidelines
stipulated non-contrasting colours, then that is "essential". However,
the "user interface control" part of a link/button with a logo is still
subject to the requirements of the UIC needing to be identifiable.

For 1.4.11, this PR adds the same best practice suggestion about using a
logo variant or alternative control.

Lastly, this PR addresses the situation where logos have been used, but
it's the author's choice - rather than a corporate identity/brand
requirement - that the logos have insufficient contrast.

Closes #1742

x-ref #902
#4376
#1275
#1739

Previews:

*
https://deploy-preview-4402--wcag2.netlify.app/understanding/contrast-minimum
*
https://deploy-preview-4402--wcag2.netlify.app/understanding/contrast-enhanced
*
https://deploy-preview-4402--wcag2.netlify.app/understanding/non-text-contrast

---------

Co-authored-by: Alastair Campbell <ac@alastc.com>
Co-authored-by: Francis Storr <francis.storr@intel.com>
Co-authored-by: Adam Page <adam@adampage.net>
…de Understanding (#4822)

Re-do of #4441 which had merge conflicts
that couldn't be resolved (directly)

* Fixes typo in URL that broke the link to animation from interactions
* Rewords the note to better explain what "starts automatically" means

with thanks to @yatil for doing the original PR

preview:
https://deploy-preview-4822--wcag2.netlify.app/understanding/pause-stop-hide
(look for the note towards the end of the "Intent" section that starts
with "Content starts automatically when...")

---------

Co-authored-by: Giacomo Petri <giacomo.petri@usablenet.com>
…not a motion actuation concern (#5089)

Adding in the intent section that pointing a device camera at an object
such as QR code or image does not fall under movement actuation.

Closes #1120
Closes #1404

---------

Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
#5077)

Historically, `aria-relevant` has been unreliable and inconsistently
supported. Currently, it has major implementation flaws in Chrome/Edge
(see #4996 (comment)).

This PR removes mention of it for the server log / timestamped example.

In addition, this cleans-up the code for the two working examples
(including the commented-out stubs for node removal in the server log
working example)

Supersedes #4996
Closes #4993

---------

Co-authored-by: Adam Page <adam@adampage.net>
…daries (#5064)

Originally, "placeholder" was mentioned in passing in the "Boundaries"
section. However, if placeholder text is the only "text inside the
control", as soon as a user enters a single empty character, the input -
if it has low contrast border - would immediately fail 1.4.11 (as then
there's no indication anymore giving users a hint about the presence of
the control).

This PR rewrites the whole boundaries explanation to hopefully make it
clearer when boundaries are needed and when they're not, and why.

Further, this adds a new failure example to the "Failing User Interface
Component Examples" table - an input without any containing text and low
contrast border - and it tweaks the preceding example of an input with a
custom caret to be just about the caret (and not ALSO have low contrast
border), so make it clearer what the failure here is.

Closes #4413

Preview:
https://deploy-preview-5064--wcag2.netlify.app/understanding/non-text-contrast

(specifically
https://deploy-preview-5064--wcag2.netlify.app/understanding/non-text-contrast#boundaries
and the second table - the failing examples - in
https://deploy-preview-5064--wcag2.netlify.app/understanding/non-text-contrast#user-interface-component-examples)

[Diff
preview](https://services.w3.org/htmldiff?doc1=https%3A%2F%2Fwww.w3.org%2FWAI%2FWCAG22%2FUnderstanding%2Fnon-text-contrast&doc2=https%3A%2F%2Fdeploy-preview-5064--wcag2.netlify.app%2Funderstanding%2Fnon-text-contrast#boundaries)
at Boundaries

---------

Co-authored-by: Adam Page <adam@adampage.net>
Co-authored-by: Bruce Bailey <bruce@bailey4.us>
This removes the line that regenerates the WCAG 2 Requirements document,
to allow gh-pages pushes to succeed.

This has been failing for the past couple of weeks, presumably
coinciding with the release of ReSpec 37. The WCAG 2 Requirements
document references the long-deprecated `w3c-respec-common` URL, which
depends on ReSpec 25.

Given that the Requirements document has not been meaningfully changed
in many years, and if we ever had the intention to republish it, we'd
likely need to update it to work with `w3c-respec` using the latest
ReSpec version, it seems like we should be fine skipping this step.
)

Flattens SVG `<text>` elements to ensure consistent rendering across
platforms. See [comment in
#4960](#4960 (comment)).

For comparison:
[production](https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast.html)
versus [deploy
preview](https://deploy-preview-5122--wcag2.netlify.app/understanding/non-text-contrast)
— no meaningful visual differences.

---------

Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
This removes `respec-config.js` from under `techniques` and
`understanding` which likely survived from back when they were published
to TR space (which hasn't been done since 2.0 AFAIK), and also cleans
out deprecated and defunct options from the main guidelines'
`respecConfig`:

- `useExperimentalStyles` was phased out some time after
`respec-w3c-common` was deprecated (i.e. sometime after v25.6.0); it is
only referenced there, not in `respec-w3c` which is relied upon now
- RDFa support was removed in 2018
- The permalink options were removed in 2018 when the current hard-coded
version was added; none of the options involving permalinks exist in
respec anymore
- `diffTool` support was dropped in 2017, at the same time that
beautifier support was dropped and the save HTML module was added
- `tocIntroductory` is documented as deprecated and non-functional
- Ironically, I cannot find any trace of `trace` in the respec repo/docs
_or_ its commit/issue/PR history
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants