Fictional company (Kestrel Supply Co.). SYNTHETIC data. ILLUSTRATIVE prices. Proof of concept.
Accessibility
This page targets WCAG 2.2 AA, with the limits listed below. It does not claim conformance. Two independent audits have been run on it (see "The independent audit, 2026-10-28" and "The second independent audit, 2026-10-29" below). No screen reader has been used on it, and nobody who uses assistive technology has reviewed it.
Applies to the six pages in site/: index.html (the main page), case-study.html, memo.html, failures.html, accessibility.html (this page, made from this file by a script) and sitemap.html (the site map, which lists every page and what it is for). The table of criteria was written for the main page. The other five are plain pages of text, lists and tables, and what is checked on them is listed under "The other pages". Kestrel Supply Co is fictional and the data is synthetic.
How to read the table
- Status:
met,not metornot applicable. This is my reading of the page as built. - How verified:
automated: a check that runs on the whole project fails if the thing breaks. Each check has a broken fixture that proves it can fail (tests/sitechecks.test.mjs).manual: I checked it by hand, in the built-in browser pane of the Claude desktop app, or by reading the page text and code. A person did not do this, and no assistive technology was used.not verified: nobody has tested it. The status is only my expectation from the markup.
automated + manualmeans both were done.- WCAG 2.2 removed criterion 4.1.1 (Parsing), so it is not listed. A to AA in 2.2 is 55 criteria: 31 at level A and 24 at level AA.
The independent audit, 2026-10-28
On 2026-10-28 the built pages were audited against WCAG 2.2 A and AA. The audit was done by Claude, an AI assistant, in a fresh chat that had not seen the build. It used headless Chromium and axe-core 4.10.2. It was not done by a person. It did not use a screen reader, another browser or a real device, so it says nothing about those.
Of the 55 Level A and AA criteria, the audit found 34 met, 5 not met, 16 not applicable and 0 it could not verify. The five not met were 2.4.3, 1.4.10, 1.4.11, 1.4.12 and 2.4.5. Each is recorded below as not met when it was found. Four were fixed on 2026-10-28 and the fifth, 2.4.5, on 2026-10-29. Each fix began with a check that failed on the page as it stood (the failures are in the technical log).
| Criterion | What the audit found | Status when found | Status now | What guards it |
|---|---|---|---|---|
| 2.4.3 Focus Order (A) | Pressing "Put my guesses back" sent keyboard focus to nothing, and the message did not say what had happened. | not met | met, fixed 2026-10-28 | A browser check presses the button and fails if focus is lost or the message is silent (scripts/checks/interaction.mjs). |
| 1.4.10 Reflow (AA) | The decision memo scrolled sideways at 320 px wide. | not met | met, fixed 2026-10-28 | The layout and reflow checks run on every page, not only the main page. |
| 1.4.11 Non-text Contrast (AA) | The outline of the unused-week squares in "How a seat is judged" was 1.32:1. | not met | met, fixed 2026-10-28 | A check reads the stylesheet and measures every chart mark in light and dark mode. It also found the shaded break-even band, which had no outline and was 1.06:1 to 1.24:1. That is fixed too. |
| 1.4.12 Text Spacing (AA) | Tool names in the "Seats by state" chart were cut off when the four text spacing values were set. | not met | met, fixed 2026-10-28 | The layout check now also runs with a wide font, with and without the spacing values. My earlier check ran in the narrow font of the machine that built the page. |
| 2.4.5 Multiple Ways (AA) | The audit marked it not met. WCAG asks for more than one way to find a page in a set of pages, and the pages offer one, the navigation line. The audit's own wording was not available when this was written. | not met | met, fixed 2026-10-29 | A site map lists every page and what it is for, and is linked from the navigation line on every page, from the footer of the main page and from this page. A check lists the .html files in site/ and fails if the site map leaves one out (scripts/checks/sitemap.mjs). |
Found in the same audit, lower priority, and not recorded as the failure of a criterion. All four were fixed on 2026-10-28, each after a check that failed first:
- The three tables in the case study had no caption. They have one now, and a check requires a caption on every table on every page.
- Two regions on the main page had the same name. The new check for this found two pairs: the two lists of page sections were both called "On this page", and one table for Chat assistant A had a twin in the worked example. Each now has its own name, and a check fails if two landmarks or regions on a page share a role and a name.
- Long chart descriptions were read out in full as the name of the chart. A chart is now named by its short title and described by its description, and a check requires that.
- Nothing announced that the data had changed when the reader switched data sets. The "what has moved" message now says which data is showing, and a browser check reads it.
2.4.5 Multiple Ways was the auditor's finding, not mine.
The audit marked 3.2.3 Consistent Navigation as met, with a note that the forms of the navigation differ. This project's own list had marked it not applicable, because the notes described one page. One navigation line, the same on every page, was added on 2026-10-28.
Where the audit and this project's own list differ
The audit and this project's own list gave different results on these eight rows. The "before the audit" column is this project's list as it stood in the notes before the audit.
| Criterion | The audit | This project's list before the audit | This project's list now |
|---|---|---|---|
| 2.4.3 Focus Order (A) | not met | met | met, fixed 2026-10-28 |
| 1.4.10 Reflow (AA) | not met | met | met, fixed 2026-10-28 |
| 1.4.11 Non-text Contrast (AA) | not met | met | met, fixed 2026-10-28 |
| 1.4.12 Text Spacing (AA) | not met | met | met, fixed 2026-10-28 |
| 2.4.5 Multiple Ways (AA) | not met | not applicable | met, fixed 2026-10-29 |
| 3.2.3 Consistent Navigation (AA) | met | not applicable | met |
| 2.2.2 Pause, Stop, Hide (A) | met | not applicable | not applicable |
| 3.1.2 Language of Parts (AA) | met | not applicable | not applicable |
The audit's result for each of the 55 criteria was given to me as a list, and these eight rows are every difference between it and this project's list before the audit. This project's list still has 2.2.2 and 3.1.2 as not applicable, because nothing starts moving by itself and all the text is English. The audit marked both met. I have not changed either row, and the table shows the difference and does not settle it.
The second independent audit, 2026-10-29
On 2026-10-29 a second audit was done by Claude, an AI assistant, in a fresh chat. It used headless Chromium, axe-core 4.14.0 and Lighthouse 13.6.0. It was not done by a person.
Its scope was index.html only. It did not look at the case study, the decision memo, the failure log, this page or the site map.
Of the 55 Level A and AA criteria, it found 34 met, 0 not met, 20 not applicable and 1 it could not verify. The one it could not verify is 4.1.3 Status Messages, which needs a screen reader.
This is a result for the main page only. It does not say that the whole site has no criterion not met. For the other pages, the first audit and the checks listed under "The other pages" are what there is.
The second audit's totals differ from this project's list by more than 4.1.3. The audit's row-by-row list was not available when this was written, so the other rows are not named here. This project's own list, written for the main page, is in the tally below: 37 met, 0 not met and 18 not applicable. It is not the same list as the second audit's 34, 0, 20 and 1. Nothing in the criteria table was changed because of the second audit, since it found no criterion not met.
Criteria
| Criterion | Level | Status | How verified | What was checked |
|---|---|---|---|---|
| 1.1.1 Non-text Content | A | met | automated | Every chart is an SVG with role="img", a short title as its name and a description attached to it, and sits in a figure with a text alternative and its table. The check tests presence and structure. The wording was not tested with users. The cafe scene follows the same pattern: each counter drawing and each stamp card has a title and a description, and the scene has a table version and a words version. A test checks the stool counts in the page against the seat list. |
| 1.2.1 Audio-only and Video-only (Prerecorded) | A | not applicable | manual | The built page has no audio, video, image or frame elements. |
| 1.2.2 Captions (Prerecorded) | A | not applicable | manual | Same: no media. |
| 1.2.3 Audio Description or Media Alternative (Prerecorded) | A | not applicable | manual | Same: no media. |
| 1.2.4 Captions (Live) | AA | not applicable | manual | Same: no media. |
| 1.2.5 Audio Description (Prerecorded) | AA | not applicable | manual | Same: no media. |
| 1.3.1 Info and Relationships | A | met | automated | Landmarks, one h1, no skipped heading level, table captions and th scope, fieldset and legend around sliders, a label for every input. |
| 1.3.2 Meaningful Sequence | A | met | manual | DOM order matches the visual order at wide and narrow widths (two "On this page" lists are switched with display: none so there is one at a time). Tab order walked in the browser pane. |
| 1.3.3 Sensory Characteristics | A | met | manual | Searched the reading prose for words that point by position, shape or colour (left, right, above, below, red, green, round, square). None found. Labels and tables were not searched. |
| 1.3.4 Orientation | AA | met | manual | No orientation lock in the CSS or script. |
| 1.3.5 Identify Input Purpose | AA | not applicable | manual | No field asks for personal data. The one text field is a seat search. |
| 1.4.1 Use of Color | A | met | manual | Verdicts, statuses and chart segments carry a text label, and chart segments also carry a pattern and an outline. In the cafe scene each seat state is a different shape (a person, an outlined person, an empty stool, a covered stool, a coat, a flag, a flag with an arrow, a fogged window, a sticker), and a legend names each one. Looked at in light and dark mode. |
| 1.4.2 Audio Control | A | not applicable | manual | The page plays no sound. |
| 1.4.3 Contrast (Minimum) | AA | met | automated + manual | The contrast check covers text and background tokens in light and dark. Computed text colours were also measured in the browser pane. |
| 1.4.4 Resize Text | AA | met | automated + manual | The viewport allows zoom (automated). Text at 200% was tested in the browser pane. It found a slider row that overflowed; fixed and logged in the technical log. The layout probe (see 1.4.10) also runs at 640 wide, which stands in for 200% text or zoom because the page breakpoints are in rem. That is an assumption I have not checked in Firefox. |
| 1.4.5 Images of Text | AA | met | manual | No raster images. All text is text. |
| 1.4.10 Reflow | AA | met | automated + manual | No fixed widths or heights and no hidden overflow (automated). Tested at 320 px wide with every disclosure open: no sideways page scroll. Wide tables sit in labelled regions that scroll with the keyboard, and a check reads every page for that. A layout probe runs the built main page in headless Edge or Chrome at 1920, 1280, 1024, 640 and 320 wide with every disclosure open. It fails on cut-off or shortened text, text outside the window, a sideways page scroll, and a table that scrolls sideways on a wide screen. The case study, memo, failure log and this page have the same probe at 1280, 640 and 320 wide, and a page-width test at 375 and 320 wide. It needs Edge or Chrome installed. The audit found the memo scrolling sideways at 320 px. It was not met until the memo table was put in a scrolling box on 2026-10-28. |
| 1.4.11 Non-text Contrast | AA | met | automated | Two checks, in light and dark mode. One measures a list of token pairs (focus ring, control borders, slider track and thumb, chart outlines, the check mark on a stamp, a full card) at 3:1 or more. The other reads the stylesheet and measures every rule that colours a chart mark: 3:1 for a mark, 4.5:1 for text in a drawing. A mark that is not measured, or not exempted with a written reason, fails. The chart hues that fall short of 3:1 in light mode also have an outline that reaches 3:1, and a pattern. The audit found the unused-week squares at 1.32:1, and the list of pairs had missed them, so the second check was added. It was not met until the squares and the shaded break-even band were fixed on 2026-10-28. |
| 1.4.12 Text Spacing | AA | met | automated + manual | Body line height is at least 1.5 and nothing has a fixed height (automated). The WCAG text-spacing values were applied in the browser pane and no text was clipped or overlapped. The layout probe also applies the spacing values to the built page at 1280 and 320 wide and fails on cut-off text, including text inside drawings. That probe found four defects my first manual pass missed (see the technical log). The audit found tool names cut off in the "Seats by state" chart. My probe had missed them because it used the narrow font of the machine that built the page, so it now also runs with a wide font. It was not met until that was fixed on 2026-10-28. |
| 1.4.13 Content on Hover or Focus | AA | met | manual | No custom hover or focus content in the CSS or script. The only hover rule underlines a link. The browser may show its own tooltip for an SVG title. |
| 2.1.1 Keyboard | A | met | automated + manual | Every control is native (link, button, summary, input). Scrolling regions have tabindex="0" (automated). Whole page used with the keyboard in the browser pane. |
| 2.1.2 No Keyboard Trap | A | met | manual | Tabbed through the page in the browser pane. Focus never stuck. |
| 2.1.4 Character Key Shortcuts | A | not applicable | manual | The script has no key handlers and the page has no accesskey. |
| 2.2.1 Timing Adjustable | A | not applicable | manual | No time limits. The 450 ms delay on the "what has moved" message only holds back an announcement. |
| 2.2.2 Pause, Stop, Hide | A | not applicable | manual | Nothing starts moving by itself. The pixel picture starts paused and moves only after Play is pressed (see "The pixel animation" below). |
| 2.3.1 Three Flashes or Below Threshold | A | met | manual | Nothing flashes. The pixel picture swaps two frames no faster than about 2.5 times a second, in a small low-contrast area, and only after Play (see "The pixel animation" below). |
| 2.4.1 Bypass Blocks | A | met | automated + manual | Two skip links come first, both targets exist (automated). They show on focus in the browser pane. |
| 2.4.2 Page Titled | A | met | automated | A descriptive title of four or more words. |
| 2.4.3 Focus Order | A | met | automated + manual | No tabindex above 0 (automated). Tab order walked in the browser pane. A browser check presses "Put my guesses back" and fails if focus ends on nothing (automated). The audit found focus lost there. It was not met until the page was fixed on 2026-10-28. Other controls that redraw part of the page have not been tested for lost focus. |
| 2.4.4 Link Purpose (In Context) | A | met | automated | Every link has a name. |
| 2.4.5 Multiple Ways | AA | met | automated | The audit found this not met, because the set of pages offered one way to find another page: the navigation line. WCAG asks for more than one. There are now two. The navigation line is at the top of every page, and the site map lists every page with a line on what it is for. A check lists the .html files in site/ and fails if the site map leaves one out, and fails if the main page footer, this page or the navigation line does not link to the site map. Fixed on 2026-10-29. Whether the site map helps a reader find a page was not tested with readers. |
| 2.4.6 Headings and Labels | AA | met | automated | Heading levels and labels exist and are unique. Whether the wording is descriptive is my judgement. |
| 2.4.7 Focus Visible | AA | met | automated + manual | The stylesheet sets a focus outline of at least 2 px (automated). Seen on links, summaries, sliders and buttons in the browser pane. |
| 2.4.11 Focus Not Obscured (Minimum) | AA | met | automated + manual | scroll-padding is set (automated). No panel overlaps the main column. Tabbing was watched in the browser pane at 1280 by 800. |
| 2.5.1 Pointer Gestures | A | met | manual | No multi-point or path gestures. Every control works with one click or a key. |
| 2.5.2 Pointer Cancellation | A | met | manual | Only native controls and click handlers. No press-down handlers in the script. |
| 2.5.3 Label in Name | A | met | automated | Each control's visible label is its accessible name. Voice control was not tested. |
| 2.5.4 Motion Actuation | A | not applicable | manual | The page does not use device motion. |
| 2.5.7 Dragging Movements | AA | met | manual | Sliders are native range inputs. Each also works with arrow keys, Home, End and a click on the track. |
| 2.5.8 Target Size (Minimum) | AA | met | automated + manual | Minimum sizes and a slider thumb of at least 24 px are in the CSS (automated). Sizes of links, summaries and sliders measured in the browser pane. |
| 3.1.1 Language of Page | A | met | automated | lang="en-AU". |
| 3.1.2 Language of Parts | AA | not applicable | manual | All text is English. |
| 3.2.1 On Focus | A | met | manual | Focus never moves or changes the page. Tabbed through in the browser pane. |
| 3.2.2 On Input | A | met | manual | A slider updates numbers in place. The data switch redraws the page in place. Neither opens a window or moves focus. |
| 3.2.3 Consistent Navigation | AA | met | automated | The audit marked this met, with a note that the forms of the navigation differ. This project's list had it as not applicable, because the notes described one page. Every page now has one navigation line at the top, with the same links in the same order: the main page, the case study, the decision memo, the failure log, this page and the site map. A check reads every page for it. Added on 2026-10-28. |
| 3.2.4 Consistent Identification | AA | met | manual | Read through the code. Cards for each tool come from one function, so the same parts have the same labels. |
| 3.2.6 Consistent Help | A | not applicable | manual | The page has no help mechanism. |
| 3.3.1 Error Identification | A | not applicable | manual | Nothing is submitted and no input can be in error. Sliders keep low at or below base at or below high. |
| 3.3.2 Labels or Instructions | A | met | automated | Every input has a label, and sliders sit in a fieldset with a legend. |
| 3.3.3 Error Suggestion | AA | not applicable | manual | See 3.3.1. |
| 3.3.4 Error Prevention (Legal, Financial, Data) | AA | not applicable | manual | The page stores and submits nothing. |
| 3.3.7 Redundant Entry | A | not applicable | manual | No multi-step process. |
| 3.3.8 Accessible Authentication (Minimum) | AA | not applicable | manual | No sign-in. |
| 4.1.2 Name, Role, Value | A | met | automated | Native controls, names on links, buttons and summaries, and aria-valuetext with the unit on every slider. Whether assistive technology reads these correctly was not tested. |
| 4.1.3 Status Messages | AA | met | not verified | "What has moved" is a polite, debounced live region (the markup is checked). After "Put my guesses back" it says so at once, and when the data set is switched it says which data is now showing (a browser check reads both). After a slider move it leads with what was changed and says whether the answers moved (a browser check reads that too). No screen reader has been used to confirm it is announced. The second audit could not verify it either, because it needs a screen reader. |
Tally
55 criteria: 31 at level A and 24 at level AA.
There are two lists, and they are not the same list.
The audit's list, as the audit gave it, before any fix: 34 met, 5 not met, 16 not applicable and 0 could not verify.
This project's own list before the audit: 35 met, 0 not met and 20 not applicable.
This project's own list now, counted from the criteria table above:
| Status | Count |
|---|---|
| met | 37 |
| not met | 0 |
| not applicable | 18 |
Of the 37 criteria marked met:
| How verified | Count |
|---|---|
| automated only | 12 |
| manual only | 14 |
| automated and manual | 10 |
| not verified | 1 |
So 22 have an automated check and 24 have a manual check. The 18 not-applicable rows were each confirmed by a manual look for the content in question. A check reads the criteria table and fails if these counts do not match it.
The other pages
The case study, the decision memo, the failure log, this page and the site map are plain pages of text, lists and tables. They have no script and no outside file. These are checked by the same automatic checks:
- Each has the notice that the company is fictional and the data synthetic, no outside reference, no em dash and no hype word.
- No cut-off, shortened or overlapping text at 1280, 640 and 320 wide, and at 320 wide with the four text spacing values and a wide font. No sideways page scroll at 375 and 320 wide.
- Every table has a caption, sits in a labelled region that scrolls with the keyboard, and has a scope on every heading.
- The words on the case study, the failure log and this page are the words of the file each is made from, and the page is what the script makes. A hand edit fails.
- Each has the same navigation line at the top, and links to every other page. The site map lists every
.htmlfile insite/, with a line on what each is for, and fails if one is missing. - The memo prints on exactly one page.
Not checked by a program: the contrast of text on these pages, the order of their headings, and the names of their links. They use dark text on white. They have not been used with a screen reader.
The pixel animation
The café in pixels is a second view of the counter picked above. Rows marked "verified by Chris, Edge on Windows, 2026-10-28" are what he watched in a real Edge window on Windows. His first look on that day showed only the still picture, because Windows animation effects were off and the page correctly followed that setting. He turned animation effects on and then watched the animation. Before that, an earlier version of this section marked rows as verified when he could not yet see it play. That was wrong and is corrected here (see the technical log). Every row not marked as verified is CSS-verified only: to be verified by Chris by hand. An automated check reads the stylesheet and the page, and a browser test sets the animation clock by hand in a headless browser. They are not counted in the tally above, which covers the 55 criteria for the whole page and has not changed.
| Criterion | What the page does | How verified |
|---|---|---|
| 2.2.2 Pause, Stop, Hide (A) | Every animation is paused until the Play button is pressed. The same button pauses it. At most four members walk at once, and they are the only things that move apart from a one pixel rest between two frames. | Verified by Chris, Edge on Windows, 2026-10-28: it starts still with a Play button, Play starts it, Pause stops it, and no more than 4 members walk at once. Also CSS and markup (automated) and a headless browser test of start, play, pause. |
| 2.3.1 Three Flashes (A) | Frames swap no faster than every 0.4 seconds (the check fails on anything under 0.7 seconds a cycle). The area is small and the greens are close in tone. | Verified by Chris, Edge on Windows, 2026-10-28, as far as watching it play shows: nothing flashed and nothing glitched. Also CSS only (automated). |
| 1.4.1 Use of Color (A) | Every seat state has its own shape. The four greens carry no meaning on their own. | Markup and bitmaps (automated: each state has its own bitmap). To be verified by Chris by hand. |
| 1.4.11 Non-text Contrast (AA) | Sprite outlines and marks use the two darker greens on the lightest, checked at 3:1 in light and dark mode. Forced colours turn the picture into system colours. | CSS only (automated). Forced colours to be verified by Chris by hand. |
| 1.1.1 Non-text Content (A) | Each picture is an SVG with a role, title and description. All words are HTML. The words version is under "Say it in words". | Markup only (automated). To be verified by Chris by hand. |
| 2.1.1 Keyboard, 2.5.8 Target Size (A, AA) | Play and Pause is a native button at least 2 rem tall. | Verified by Chris, Edge on Windows, 2026-10-28: the Play and Pause button worked. Also CSS and markup (automated). |
| 4.1.3 Status Messages (AA) | A slider change that moves the marks or the card is added to the existing "what has moved" status region, after a short wait. | Markup and script text only (automated). Not verified with a screen reader. |
| prefers-reduced-motion | Nothing animates, the Play button is hidden, and a note says why. The still picture is the same as the paused picture. | Verified by Chris, Edge on Windows, 2026-10-28: with Windows animation effects off he saw the still picture, no Play button and the explanatory note. Also CSS only (automated), and a browser test with the setting forced on. |
| Marks over members follow the hours slider, and the card follows the hourly cost (a behaviour of the page, not a WCAG criterion) | Moving the hours slider adds or removes the small squares over the members. Moving the hourly cost slider makes the card larger or smaller. | Verified by Chris, Edge on Windows, 2026-10-28: both followed the sliders. Also automated tests of the numbers. |
Limits
What has not been tested, and what that means:
- Screen readers. None used, by me or in either audit: not NVDA, JAWS, VoiceOver, TalkBack or Narrator. Names, roles and the live region are checked in markup only.
- The independent audits. Both were done by an AI assistant in a fresh chat, with headless Chromium: the first with axe-core 4.10.2, the second with axe-core 4.14.0 and Lighthouse 13.6.0. They are second looks and not expert reviews. Neither used assistive technology, another browser or a real device. The second looked at the main page only.
- Chart text at narrow widths. At 320 px wide the labels in the charts shrink to about 9.8 px, and they do not grow when only the text size is raised. Every chart has a table version, which does grow. That is the second audit's figure. My own measure of the built page, in a window 320 px wide, is 9.3 px in the seats chart. Raising only the text size makes the page reflow to one column, and the charts then get smaller, not larger.
- The data set choice. The data set radio buttons redraw the whole page when they are changed. The page says which data is now showing in the status message, and focus stays on the choice (a browser check reads both), but the cards, the café and the seat list all change at once.
- Screen readers, other browsers and real devices. Screen readers, other browsers and real devices are untested by either audit. The only real browser window used on the page is Edge on Windows, by Chris, for the rows marked as verified by him.
- Other browsers and devices. Manual checks used one embedded Chromium-based browser pane. Not tested in Firefox, Safari, Edge, or on a phone or tablet. The 320 px and 200% tests resize that pane. They are not a real device at 400% zoom.
- Forced colours. Verified by Chris, Edge, 2026-10-27. He scrolled the whole page with
forced-colors: activeemulated in the Edge DevTools Rendering panel, and nothing broke. A check also confirms the stylesheet has aforced-colorsblock. - Prefers contrast and OS text scale. Checked by Chris in Edge DevTools emulation, 2026-10-27. He scrolled the whole page with
prefers-contrast: moreand with OS text scale at 200%, and nothing broke. - Font-size-only 200% overflow (known limit). If only the page's base font size is set to 200%, with no change to the window or the breakpoints, some tables in the tool cards still scroll sideways at 1280 px wide. Not reproduced by Chris under OS text scale emulation. I judge a real text size setting also changes the layout breakpoints, but I have not checked that in Firefox.
- Reduced motion. Verified by Chris, Edge on Windows, 2026-10-28. With Windows animation effects off, the page showed the still picture, no Play button and the explanatory note. With them on, the Play button appeared and the picture was paused until he pressed it. A check also confirms the stylesheet has the rules, and a browser test forces the setting on and off. Both browsers and the in-app pane on the machine I used ask for reduced motion by default, so I tested the animation itself with those rules taken out of a test copy. Edge on Windows is the only real window it has been seen in.
- Voice control, switch access and magnifiers. Not tested.
- Wording quality. Text alternatives, link names and headings are checked for presence and structure. I judged the wording. Nobody who uses assistive technology has reviewed it.
- Plain English. The reading-grade check measures sentence length and syllables, not whether a term has been explained at first use. A jargon check covers a short list of words. See the technical log.
- No JavaScript. All reading content and the section links work without it. The sliders, data switch and seat filters need it, and the page says so.
- Not covered by the checks. Any problem the checks do not look for, which is the usual limit of automated testing.
No criterion in the table above is marked "not met" now. A criterion marked "met" means I found no failure with the checks, the tests and the audits above. That is not the same as none failing.
How the checks are run
The checks run on the whole project, and any one of them failing stops a change. The checks are WCAG 2.2 AA static checks, WCAG 1.4.11 non-text contrast (a list of pairs, and every chart mark), colour contrast, plain English, every id is unique and every link ... exists, the layout and page checks, the interaction probe, and the example and sidebar checks. The manual items need a browser: open the pages in one.