Accessibility report

www.w3.org · 12 August 2026

Site
https://www.w3.org/
Date
2026-08-12
Standard
WCAG 2.1 level AA (EN 301 549 / European Accessibility Act)
Scope
5 pages, automated check

This report does not say you are compliant. No automated tool can honestly say that. Automated checks find roughly a third of accessibility barriers; the rest need a human, and some need a person who actually uses a screen reader. What follows is what a machine could prove, on the date above. Treat it as a starting list, not a clean bill of health.

Summary

These 5 issue types affect 44 elements on 1 of the 5 pages scanned. Element count is not a measure of work: a single rule in a shared stylesheet or template can account for hundreds of them.

Since the last scan

Compared with 2026-08-10. “No longer detected” is not the same as “fixed” — an element can disappear because a page changed, or because it only shows under conditions this scan did not reach.

We changed the browser window we scan with (800x600 → 1440x900 pixels). Sites lay out differently at different widths — a wider window can show navigation and footers that a narrow one hides. Some of the differences below reflect that change on our side, not a change to your site. The width is a one-time change, so it will not affect next week’s comparison.

5 issue types unchanged.

What to fix first

Ordered by severity, then by how many elements are affected. An issue on many pages is usually one fix in a shared template. Each one carries its axe-core rule id, so you can look the rule up and check our count against your own.

1 Images must have alternative text

CRITICALimage-alt 33 elements on 1 page

<img src="./img/border_left_top.gif" width="10px" height="10px">

Example — 1 of 33 affected elements.

How to fix this →

2 Select element must have an accessible name

CRITICALselect-name 1 element on 1 page

<select onchange="location.href = this.value;">

The affected element.

How to fix this →

3 Links must have discernible text

SERIOUSlink-name 7 elements on 1 page

<a href="javascript:location.href='home.html';" onfocus="blur();"><img name="nav_home" src="./img/nav_home.gif" width="88" height="27" hspace="15" border="0px"></a>

Example — 1 of 7 affected elements.

How to fix this →

4 Elements must meet minimum color contrast ratio thresholds

SERIOUScolor-contrast 2 elements on 1 page

<b>Free Penguins</b>

Example — 1 of 2 affected elements.

How to fix this →

5 <html> element must have a lang attribute

SERIOUShtml-has-lang 1 element on 1 page

<html>

The affected element.

How to fix this →

Needs review

On 8 elements the check stopped short of a verdict. These are not counted in the numbers above — and they are not cleared either. A rule lands here when it can see something worth questioning but cannot settle it without a person: the element carries its own text, or its meaning depends on context a machine does not have.

This is also the usual reason a count here differs from what you get by searching your own source for the same pattern. Counts are per rule, and a rule weighs conditions the pattern alone does not capture — an element’s own text, its role, its ancestors. If a number looks off by a few, check it against the rule id rather than against the description.

Pages

Pages ordered by how many elements are affected. A page can have few issue types but many affected elements, or the reverse.
ElementsTypes Page
445https://www.w3.org/WAI/demos/bad/before/home.html
00https://www.w3.org/
00https://www.w3.org/WAI/
00https://www.w3.org/WAI/demos/bad/Overview.html
00https://www.w3.org/WAI/demos/bad/before/reports/home.html