We've upgraded our accessibility validation servers from AccessLint Core 0.18 to 0.21.
No rules were added or removed: there are still 95 rules in our AccessLint ruleset. What changed is how several of them decide a result.
Hidden elements are now ignored consistently
Heading order, focus order, region and the landmark checks for duplicates and top-level placement already skipped aria-hidden and the hidden attribute. They now also skip anything hidden by CSS, with a computed display: none or visibility: hidden. Label content mismatch does the same.
Off-screen menus, closed modals and inactive tab panels stop being reported.
Color contrast understands modern CSS colors
The color contrast rule now parses oklch(), oklab(), lab(), lch(), color() and color-mix(). Text using those notations was skipped before, so on a site built with them you may see contrast issues that never appeared.
Gradient backgrounds also account for translucent layers painted over them, which makes those ratios more accurate in both directions.
Required ARIA attributes accept native HTML state
Elements with ARIA roles must have all required ARIA attributes, but a <progress>, a <meter>, an <input type="range"> or an <input type="number"> already exposes its value to assistive technology. Those are no longer asked for an explicit aria-valuenow. Same idea for checkboxes, radios, options and headings.
Label content mismatch reads text the way the page renders it
Element boundaries now contribute a space, and runs of whitespace collapse, so words split across lines of markup no longer run together. Labels that only failed because of indentation now pass, and the quoted text in the message matches what you see on screen.
Selectors in results point at one element
When several elements share the same anchor attribute, the selector now adds an :nth-of-type() index so it resolves to a single element.
Issues from list children and definition list also changed: they now point at the list container instead of the offending child inside it.
What this means for your reports
If you re-run a report, results for these rules may differ from your previous run. In most cases you'll see fewer issues; color contrast is the exception and can go up.
Reports you already have are unaffected, and each check keeps the guide for the engine version that produced it, so a check from 0.18 still links to the 0.18 guide.
No action required
You don't need to do anything to get the new version. We've already upgraded our accessibility validation servers, so AccessLint Core 0.21 will be used automatically in your next reports.
Current accessibility ruleset
Check out the full list of AccessLint rules currently checked by our web crawler: