
Essay
Englyn, end to end
A conformance standard for interfaces read by two different kinds of reader who turn out to have the same problem. Ten sections, no prior knowledge assumed.
Listen
Side A — The Read
About this recording
- Nature
- Human-recorded speech, not synthetic
- Recorded by
- Micah Eberman, using GarageBand 10.4.12
- Source text
- Englyn, end to end, written by Micah Eberman
- Recorded on
- Reviewed by
- Micah Eberman,
- Owner
- Micah Eberman
About this recording
- Nature
- Human-recorded speech, not synthetic
- Recorded by
- Micah Eberman, using GarageBand 10.4.12
- Source text
- Englyn, end to end, written by Micah Eberman
- Recorded on
- Reviewed by
- Micah Eberman,
- Owner
- Micah Eberman
The text on this page is the transcript of this reading.
Watch
Loads the YouTube player and starts the video. Contacts youtube-nocookie.com, a third party. Nothing is sent until you press play. Or watch it on YouTube instead.
Read
Essay briefing
Ten short sections explaining the Englyn conformance standard from the beginning, written for somebody who has never heard of it. In order: the two readers who cannot see a web page, why an agent has the same problem a screen reader user has had since nineteen ninety-nine, the five marks and why four of them are WCAG principles under new names, the privacy standard whose failure made the fifth mark necessary, a before and after of the same page, the attribute vocabulary and its six operations, how one source serves every reader, the day four instruments reported clean on a page a screen reader was reading wrong, the three conformance verdicts, and the three tiers including the one nobody can award themselves. Each section carries a diagram built from text and boxes, with a fuller description available to assistive technology beneath it. An eleventh section closes the essay: what the diagrams are claiming, and what they are not.
Two readers. Neither can see it.
Section 1 of 11.Neither one wrote it. Both have to act on it.
Here’s a web page. And here are two readers who can’t see it. Somebody using a screen reader, and a software agent running an errand for somebody else.
One of them’s been dealing with this since 1999. The other one showed up last year with a budget and a lot of press.
Neither of them wrote the page. Both of them have to act on it.
That’s the whole thing. You can bail now if you want, but it gets better.
Say it. Don’t imply it.
Section 2 of 11.Twenty-seven years apart, one requirement. Then one more.
A screen reader can’t tell you the red button’s the dangerous one. Red’s a color, a color’s a pixel, good luck.
Agents have exactly the same problem. Two paths, twenty-seven years apart, landing on one requirement: say it, don’t imply it.
Which means the disability community solved most of this about fifteen years early and filed it under a different name. Semantic structure. Stated relationships. Announced consequences.
Take the ride. Just don’t act surprised about who was already here.
But agents need one thing screen readers never had to ask for. Hang on to that.
Four of the five are WCAG.
Section 3 of 11.One mark is new. Not five.
Five marks, and four of them are WCAG principles wearing a new sleeve. Observable was Perceivable. Recoverable was Operable. Explicit was Understandable. Typed was Robust.
Same B-side, new artwork. If you’ve done accessibility work you’re most of the way here already, and I’d rather tell you that than sell you a rewrite.
One mark’s new. Not five.
That fifth one, Verifiable, has nothing to connect back to. That’s not the W3C missing something. That’s the next bit.
Presence is not conformance.
Section 4 of 11.P3P: CP="This is not a P3P policy!"
Shipped in production. For years.
WCAG got written for documents, and documents don’t claim anything. A page that says “Contact Us” isn’t asserting a fact you could be wrong about.
An interface an agent acts on is a transaction. When your markup says an action is safe, or reversible, or done, that’s a claim with consequences … and there’s nobody standing there to catch it if it’s a lie.
2002. The W3C ships a privacy standard called P3P. Site declares a policy. Browser checks a string’s there. Never checks whether it’s true. Check passes. Nothing changes.
Google’s policy string, in production, for years, read: this is not a P3P policy.
Any standard you can satisfy by declaring something, somebody will.
The same page, twice.
Section 5 of 11.Before
- Link
- Delete
- Link
- Save
- Heading
After
- Essay briefing
- Fifteen sections
- Delete, permanent, no undo
Same content. Somebody finally said it out loud.
71.6% of screen reader users navigate by heading
Here’s a normal page the way a screen reader reads it out. Link. Delete. Link. Save. Heading. Everything’s a link or a button, nothing tells you what’ll happen, and you build the map by trial and error. You find out what a wrong guess costs after you’ve already made it.
Same page with Englyn on it. Essay briefing. Fifteen sections. Delete, permanent, no undo.
A briefing tells you what’s here before you spend anything finding out. The consequence gets announced before you pull the trigger, not after.
Same content. Same page. The meaning was always in there. Nobody’d said it out loud.
The stat above is the reason the heading list carries the story: the outline is the primary interface for most of the people reading this.
Six verbs. Two I’ve never used.
Section 6 of 11.data-englyn-*perceiveactannounceauditinterrupt0 usesoversee0 uses
Two of six have never been emitted. Said out loud.
This isn’t a framework. There’s nothing to install in your product. It’s attributes on HTML you’ve already got, in three groups: what’ll happen if you act on this, what this region is, and where the annotation came from.
Underneath that, six operations. Closed set. Six, and only six.
Two of them are drawn hollow, and here’s the part that makes the demo worse. My own site’s never once emitted “interrupt,” because a site made of essays has nothing to interrupt. Interrupt’s what carries Recoverable. So Recoverable’s evidence, on my own reference implementation, is zero.
That’s unknown. Not absent. And I’m not writing it up like I checked.
One source. Everybody.
Section 7 of 11.- Screen readerregion names, read order, announced consequences
- Braille display40 to 80 cells, so every word costs something
- Fatigue or ADHDpriority order, and a briefing up front
- Agent, directtyped semantics instead of guessing from pixels
- Agent, negotiatedthe same payload with no visual chrome at all
Nobody gets a separate site.
One marked-up source, and every reader gets the same payload off it.
Screen reader gets region names, read order, announced consequences. Braille display gets forty to eighty cells, so every word costs you something … verbosity that just annoys a speech user will eat a braille line alive. Somebody with fatigue or ADHD (like me) gets priority order and a briefing, so they know what’s here before they spend the attention on finding out. An agent gets typed semantics instead of squinting at pixels.
Nobody gets their own version. The separate accessible site’s always the one that’s gone stale by March.
And there’s one rule under all of it: what you need is declared, never guessed. A switch you set is a preference. A system that infers your disability is surveillance.
Four said clean. One heard it wrong.
Section 8 of 11.Six instances, across four pages. Found by listening.
Last August, four instruments looked at one of my pages and all four said it was clean. The DOM was right. Axe found zero violations. html-validate passed. My own checker passed.
Then I listened to it with VoiceOver, and heard the page say “what this buys U-S.” It was reading it as the country … what was written was “us.”
A CSS uppercase rule was reaching the browser’s accessibility tree. Six times, across four pages. Found by listening. Nothing else caught it.
So there are six test layers, and every one of them’s blind to what the others can see. The four that passed weren’t wrong. They were blind, which is a different thing and a more useful one. That’s the design. It’s not a gap I’m apologizing for.
Three verdicts, never two.
Section 9 of 11.Told apart by a denominator
Zero violations and zero files examined look identical in a log.
Most tools have two states, pass and fail, and they quietly file “couldn’t determine” under pass. That’s the false clean this whole thing exists to refuse.
So there are three. Conforms, fails, and cannot-check … and cannot-check splits in two.
If the instrument never ran, that blocks your claim. No denominator. Nothing got examined. But if it ran, reached everything it could reach, and told you exactly what it couldn’t judge and why? That blocks nothing. It gets published right next to the claim.
You tell them apart by the denominator. Zero violations and zero files examined look identical in a log and mean opposite things.
My own report publishes a hundred and eighty-nine of these, across sixteen pages, each one with a stated reason.
Gold stays empty.
Section 10 of 11.I hold Bronze on this site. I don't hold Gold.
Bronze, structurally sound, means three instruments ran and found nothing. Silver, operable end to end, adds keyboard. Both of those are claims about testing, not about people, and I say so right on the page.
You can reach both on your own. An afternoon gets the checker running against your build and a list of what it couldn’t judge. A week gets you Bronze. A month in CI gets you Silver.
That top rung’s drawn empty, and it stays empty. Gold means a disabled reviewer, paid, actually used the thing and said so. Nobody can self-certify that. Not you, and not me. I hold Bronze on my own site. I don’t hold Gold, and I’m not going to hand it to myself.
Gold isn’t written yet, and that’s on purpose. Writing the tier that governs disabled reviewers, without disabled reviewers in the room, would be this whole problem all over again.
So that section’s blank on purpose. And it’s the part I’m asking for help with. Run the checker on something you own. Tell me what it got wrong.
What this page is claiming, and what it isn’t
Section 11 of 11.Every figure above is text and boxes, not an image, so a screen reader reads the same words you do and nothing is trapped in a picture.
The numbers come from a single fact file rather than being typed twice, because two pages carrying the same statistic is two chances for them to disagree, and a standard that contradicts itself has a bigger problem than a typo.
One number is missing on purpose. My conformance report and two later runs disagree about
how many html-validate failures this site has, and nobody has re-run it against the build
that’s actually serving. So it isn’t here. Publishing whichever number came to hand, on a
page about not doing that, would have been a bad day.
Liner Notes
The soundtrack to this essay
monday → what should I know → the thing that lied → the tear-down → back and forth → one source → three
The sleeve was die-cut to look like a floppy disk and cost more to make than the record sold for. A format that fought its own contents, which is the whole problem, pressed into vinyl in 1983.
“Is There Something I Should Know?”
The question a screen reader asks your page. The question an agent asks it. Neither one gets an answer from a red button.
For the morning four instruments told you the page was clean and one of them was wrong. Not malice. Blindness. Somehow worse.
What you do on Monday afternoon, once you've stopped arguing with the report.
Tuesday through Thursday. Nervy, verbose, self-aware, and going over the same passage again. The most honest song about iteration anybody has written.
One source, every reader. Nobody gets their own version, and the separate accessible site is always the one that's gone stale by March.
Three verdicts. Three tiers. Three instruments for Bronze. The number kept turning up on its own, and this is the only closer that ends warm without pretending you're finished.
