Automated test results
Every time the prototype is published, these tests run against the live site. The results below come from the latest run and are published with the site, unchanged.
Summary
81 of 81 checks passed. Every check passed.
Accessibility
8 of 8
Pass · axe-core WCAG 2.0, 2.1, and 2.2 Level A and AA rules on every page, at desktop and phone widths.
Keyboard and structure
20 of 20
Pass · Skip link, keyboard reach and visible focus on every control, page language, and heading structure.
Read-aloud playback
40 of 40
Pass · Audio delivery, no autoplay, keyboard play and pause, status messages, and highlighting in step with the voice.
Visual regression
13 of 13
Pass · Full-page screenshots compared with approved baselines; more than 100 changed pixels (or 0.1% of the page) fails.
Run an accessibility check now
This runs the same axe-core accessibility rules in your browser, against every page of the prototype, right now.
Check details
| Page | Check | Result | Details |
|---|---|---|---|
| / | axe-core WCAG 2.2 AA, desktop | Pass | 27 rules passed |
| / | axe-core WCAG 2.2 AA, phone | Pass | 27 rules passed |
| /gettysburg-address/ | axe-core WCAG 2.2 AA, desktop | Pass | 27 rules passed |
| /gettysburg-address/ | axe-core WCAG 2.2 AA, phone | Pass | 27 rules passed |
| /declaration-of-independence/ | axe-core WCAG 2.2 AA, desktop | Pass | 27 rules passed |
| /declaration-of-independence/ | axe-core WCAG 2.2 AA, phone | Pass | 27 rules passed |
| /don-quijote/ | axe-core WCAG 2.2 AA, desktop | Pass | 27 rules passed |
| /don-quijote/ | axe-core WCAG 2.2 AA, phone | Pass | 27 rules passed |
| Page | Check | Result | Details |
|---|---|---|---|
| / | Page language declared | Pass | lang="en-US" |
| / | Exactly one h1 | Pass | 1 found |
| / | Skip link is first, visible on focus, and moves focus to main | Pass | |
| / | Every control is reachable with Tab | Pass | 15 of 15 controls |
| / | Focus indicator visible on every control | Pass | gold outline on every stop |
| /gettysburg-address/ | Page language declared | Pass | lang="en-US" |
| /gettysburg-address/ | Exactly one h1 | Pass | 1 found |
| /gettysburg-address/ | Skip link is first, visible on focus, and moves focus to main | Pass | |
| /gettysburg-address/ | Every control is reachable with Tab | Pass | 15 of 15 controls |
| /gettysburg-address/ | Focus indicator visible on every control | Pass | gold outline on every stop |
| /declaration-of-independence/ | Page language declared | Pass | lang="en-US" |
| /declaration-of-independence/ | Exactly one h1 | Pass | 1 found |
| /declaration-of-independence/ | Skip link is first, visible on focus, and moves focus to main | Pass | |
| /declaration-of-independence/ | Every control is reachable with Tab | Pass | 15 of 15 controls |
| /declaration-of-independence/ | Focus indicator visible on every control | Pass | gold outline on every stop |
| /don-quijote/ | Page language declared | Pass | lang="es-US" |
| /don-quijote/ | Exactly one h1 | Pass | 1 found |
| /don-quijote/ | Skip link is first, visible on focus, and moves focus to main | Pass | |
| /don-quijote/ | Every control is reachable with Tab | Pass | 16 of 15 controls |
| /don-quijote/ | Focus indicator visible on every control | Pass | gold outline on every stop |
| Page | Check | Result | Details |
|---|---|---|---|
| / | Audio is delivered as MP3 and supports seeking (HTTP range) | Pass | HTTP 200, audio/mpeg, range request HTTP 206 |
| / | Nothing plays until the user asks (WCAG 1.4.2) | Pass | |
| / | Audio length covers every sentence | Pass | 174.3 s audio; last sentence starts at 164.1 s |
| / | Every sentence and word has a timing mark, in order | Pass | 26 sentences, 456 words |
| / | Play works from the keyboard and audio advances | Pass | 2.32 s after 2.5 s |
| / | Button and status message report playing state | Pass | button "Pause", status "Playing" |
| / | Pause works from the keyboard and is announced | Pass | button "Play", status "Paused" |
| / | Highlighted sentence and word match the audio position | Pass | checked sentences 1, 9, 18, 26 |
| / | Next and previous sentence buttons move by one sentence | Pass | next went to 3, previous to 2 |
| / | Speed control changes the reading rate | Pass | playbackRate 1.5 |
| /gettysburg-address/ | Audio is delivered as MP3 and supports seeking (HTTP range) | Pass | HTTP 200, audio/mpeg, range request HTTP 206 |
| /gettysburg-address/ | Nothing plays until the user asks (WCAG 1.4.2) | Pass | |
| /gettysburg-address/ | Audio length covers every sentence | Pass | 76.2 s audio; last sentence starts at 55.6 s |
| /gettysburg-address/ | Every sentence and word has a timing mark, in order | Pass | 10 sentences, 271 words |
| /gettysburg-address/ | Play works from the keyboard and audio advances | Pass | 2.46 s after 2.5 s |
| /gettysburg-address/ | Button and status message report playing state | Pass | button "Pause", status "Playing" |
| /gettysburg-address/ | Pause works from the keyboard and is announced | Pass | button "Play", status "Paused" |
| /gettysburg-address/ | Highlighted sentence and word match the audio position | Pass | checked sentences 1, 4, 7, 10 |
| /gettysburg-address/ | Next and previous sentence buttons move by one sentence | Pass | next went to 3, previous to 2 |
| /gettysburg-address/ | Speed control changes the reading rate | Pass | playbackRate 1.5 |
| /declaration-of-independence/ | Audio is delivered as MP3 and supports seeking (HTTP range) | Pass | HTTP 200, audio/mpeg, range request HTTP 206 |
| /declaration-of-independence/ | Nothing plays until the user asks (WCAG 1.4.2) | Pass | |
| /declaration-of-independence/ | Audio length covers every sentence | Pass | 53.6 s audio; last sentence starts at 31.2 s |
| /declaration-of-independence/ | Every sentence and word has a timing mark, in order | Pass | 3 sentences, 181 words |
| /declaration-of-independence/ | Play works from the keyboard and audio advances | Pass | 2.46 s after 2.5 s |
| /declaration-of-independence/ | Button and status message report playing state | Pass | button "Pause", status "Playing" |
| /declaration-of-independence/ | Pause works from the keyboard and is announced | Pass | button "Play", status "Paused" |
| /declaration-of-independence/ | Highlighted sentence and word match the audio position | Pass | checked sentences 1, 2, 3, 3 |
| /declaration-of-independence/ | Next and previous sentence buttons move by one sentence | Pass | next went to 3, previous to 2 |
| /declaration-of-independence/ | Speed control changes the reading rate | Pass | playbackRate 1.5 |
| /don-quijote/ | Audio is delivered as MP3 and supports seeking (HTTP range) | Pass | HTTP 200, audio/mpeg, range request HTTP 206 |
| /don-quijote/ | Nothing plays until the user asks (WCAG 1.4.2) | Pass | |
| /don-quijote/ | Audio length covers every sentence | Pass | 29.3 s audio; last sentence starts at 17.5 s |
| /don-quijote/ | Every sentence and word has a timing mark, in order | Pass | 4 sentences, 86 words |
| /don-quijote/ | Play works from the keyboard and audio advances | Pass | 2.46 s after 2.5 s |
| /don-quijote/ | Button and status message report playing state | Pass | button "Pausa", status "Reproduciendo" |
| /don-quijote/ | Pause works from the keyboard and is announced | Pass | button "Reproducir", status "En pausa" |
| /don-quijote/ | Highlighted sentence and word match the audio position | Pass | checked sentences 1, 2, 3, 4 |
| /don-quijote/ | Next and previous sentence buttons move by one sentence | Pass | next went to 3, previous to 2 |
| /don-quijote/ | Speed control changes the reading rate | Pass | playbackRate 1.5 |
| Page | Check | Result | Details |
|---|---|---|---|
| / | Matches approved screenshot: desktop, initial | Pass | 0 of 2,908,160 pixels differ (0.000%) |
| / | Matches approved screenshot: phone, initial | Pass | 93 of 1,581,450 pixels differ (0.006%) |
| / | Matches approved screenshot: desktop, reading | Pass | 0 of 2,908,160 pixels differ (0.000%) |
| /gettysburg-address/ | Matches approved screenshot: desktop, initial | Pass | 91 of 1,696,000 pixels differ (0.005%) |
| /gettysburg-address/ | Matches approved screenshot: phone, initial | Pass | 81 of 975,390 pixels differ (0.008%) |
| /gettysburg-address/ | Matches approved screenshot: desktop, reading | Pass | 0 of 1,696,000 pixels differ (0.000%) |
| /declaration-of-independence/ | Matches approved screenshot: desktop, initial | Pass | 0 of 1,492,480 pixels differ (0.000%) |
| /declaration-of-independence/ | Matches approved screenshot: phone, initial | Pass | 0 of 861,900 pixels differ (0.000%) |
| /declaration-of-independence/ | Matches approved screenshot: desktop, reading | Pass | 0 of 1,492,480 pixels differ (0.000%) |
| /don-quijote/ | Matches approved screenshot: desktop, initial | Pass | 0 of 1,300,480 pixels differ (0.000%) |
| /don-quijote/ | Matches approved screenshot: phone, initial | Pass | 47 of 680,160 pixels differ (0.007%) |
| /don-quijote/ | Matches approved screenshot: desktop, reading | Pass | 0 of 1,300,480 pixels differ (0.000%) |
| /gettysburg-address/ | Self-test: a deliberate design change is detected | Pass | Detected and reported: 12,669 pixels differ (0.75%) |
Visual regression screenshots
Each screenshot from this run is compared pixel by pixel with an approved baseline. The difference map marks changed pixels in red. The self-test changes the design on purpose to show that the comparison catches real changes.
Listen to the collections, desktop, page load
Pass · 0 of 2,908,160 pixels differ (0.000%)
Listen to the collections, phone, page load
Pass · 93 of 1,581,450 pixels differ (0.006%)
Listen to the collections, desktop, reading (third sentence highlighted)
Pass · 0 of 2,908,160 pixels differ (0.000%)
The Gettysburg Address, desktop, page load
Pass · 91 of 1,696,000 pixels differ (0.005%)
The Gettysburg Address, phone, page load
Pass · 81 of 975,390 pixels differ (0.008%)
The Gettysburg Address, desktop, reading (third sentence highlighted)
Pass · 0 of 1,696,000 pixels differ (0.000%)
The Declaration of Independence (opening), desktop, page load
Pass · 0 of 1,492,480 pixels differ (0.000%)
The Declaration of Independence (opening), phone, page load
Pass · 0 of 861,900 pixels differ (0.000%)
The Declaration of Independence (opening), desktop, reading (third sentence highlighted)
Pass · 0 of 1,492,480 pixels differ (0.000%)
Don Quijote de la Mancha (comienzo), desktop, page load
Pass · 0 of 1,300,480 pixels differ (0.000%)
Don Quijote de la Mancha (comienzo), phone, page load
Pass · 47 of 680,160 pixels differ (0.007%)
Don Quijote de la Mancha (comienzo), desktop, reading (third sentence highlighted)
Pass · 0 of 1,300,480 pixels differ (0.000%)
Self-test: highlight color and Play button color changed on purpose
Pass · Change detected: 12,669 pixels differ (0.75%)
Recent runs
| Date (Central) | Checks passed | Result |
|---|---|---|
| Oct 3, 2026, 8:03 PM | 81 of 81 | Pass |
| Oct 3, 2026, 7:57 PM | 81 of 81 | Pass |
| Oct 3, 2026, 7:17 PM | 81 of 81 | Pass |






































