A tech guide for people who are not from tech
Phone first: the guide as it reads on a small screen, then its live reading numbers and the checker that tests it.
Built 2026-09-26 · Filmed 2026-10-20
I wrote the method for a plain-language guide as rules a script can test, and the guide gets opened. Below is the script's run on the published page, shown as it came out, and the count of opens.
- Rules in the method34each one measured by a script on the real page, at phone width
- FAIL on the published page2and 5 WARN in the script's run on 2026-10-22. Its exit status is 1.
- Opened as of 2026-10-223,640page opens of the guide, both languages. Opens, not people.
Exhibit 1What a rule looks like to a reader
Two short clips from the film, each with its own sound. Tap one to play it. Playing one stops the other.
What to notice: a rule written as something a frightened person can do: three verbs, then a numbered list that says what each one means.
From the film's guide scenes, the English edition, narrated in my voice.
What to notice: the guide ends in 12 lines that repeat each part's summary word for word, and one button that opens WhatsApp with a message ready to send. The button is hovered in the film, never pressed.
From the film's guide scenes, the English edition, narrated in my voice.
Exhibit 2What the script measured
Each row is one rule of the method. The limit, the measured value and the result all come from one run of the script on the published Portuguese edition at 390 px, on 2026-10-22. The result word is the checker's, not mine. The rules that did not pass come first.
- 30PASS
- 3WARN
- 1FAIL
| Rule | Measured | Result |
|---|---|---|
| The page loads nothing from outside its own fileLimit: noneexternal | 2 files from outside | FAIL2 findings |
| Links inside a sentence are tall enough for a thumbLimit: at least 48 pxtap-inline | 23 px tall (1 of 1 below the limit) | WARN1 finding |
| Sentences stay near the target lengthLimit: about 25 wordssentence-soft | 27 words, longest sentence (2 over) | WARN2 findings |
| Paragraphs stay near the target lengthLimit: about 45 wordsparagraph-soft | 48 words, longest paragraph (2 over) | WARN2 findings |
The 30 rules that passed, with the value measured
| Rule | Measured | Result |
|---|---|---|
| Body text is big enough to read without zoomingLimit: at least 20 pxbody-size | 20.8 px | PASS |
| Every paragraph and list line is big enoughLimit: at least 20 pxprose-size | 20.8 px | PASS |
| Labels, captions and notes are big enoughLimit: at least 16 pxsecondary-size | 16.3 px | PASS |
| The page does not scroll sideways on a phoneLimit: at most 390 pxoverflow | 390 px wide | PASS |
| It still does not when the reader enlarges the textLimit: at most 390 pxoverflow-large | 390 px wide at 130% text | PASS |
| No box scrolls sideways (no carousel, no wide table)Limit: nonescroll-box | 0 boxes | PASS |
| No text hides behind a tapLimit: nonehidden-text | 0 blocks | PASS |
| No tabs, toggles, pop-ups or tooltipsLimit: nonereveal-control | 0 controls | PASS |
| Nothing sticks to the screen and covers textLimit: nonefixed-position | 0 elements | PASS |
| Buttons and block links are tall enough for a thumbLimit: at least 48 pxtap-target | 49.0 px tall | PASS |
| It declares a phone viewportLimit: presentviewport | present | PASS |
| It stays light on a phone set to dark modeLimit: light onlycolor-scheme | light only | PASS |
| Every drawing can scale (it has a viewBox)Limit: none missingsvg-viewbox | 0 of 20 drawings | PASS |
| The part labels run in order, with the right totalLimit: noneparte-sequence | 0 of 13 labels off | PASS |
| Each part ends in exactly one summary lineLimit: nonefrase-per-part | 0 of 12 parts off | PASS |
| The closing recap repeats those lines word for wordLimit: nonerecap | 0 of 12 lines differ | PASS |
| The contents list has one link per part, and each link landsLimit: noneindice | 0 of 13 parts unlinked | PASS |
| No unfilled template slot or TODO is leftLimit: noneplaceholder | 0 slots or TODOs | PASS |
| No word the method bans (condescension, charged politics)Limit: nonebanned-word | 0 banned words | PASS |
| No sentence is far too longLimit: at most 30 wordssentence-hard | 27 words, longest sentence | PASS |
| No paragraph is far too longLimit: at most 60 wordsparagraph-hard | 48 words, longest paragraph | PASS |
| Text contrast meets the accessibility floor (WCAG AA)Limit: at least 4.5:1contrast | 5.9:1, the lowest in the text | PASS |
| The page loads without a script errorLimit: nonepage-error | 0 script errors | PASS |
| Nor on a smaller phoneLimit: at most 360 pxoverflow-narrow | 360 px wide at 360 px | PASS |
| The page declares its language as PortugueseLimit: pt-*lang | pt-BR | PASS |
| Each part's headline is a sentence, not a labelLimit: noneheadline-sentence | 0 headlines that read as a label | PASS |
| No word that needs care under the neutrality rulesLimit: nonewatch-word | 0 watch words | PASS |
| No em dash in the textLimit: noneem-dash | 0 em dashes | PASS |
| At most one exclamation mark (the tone is calm)Limit: at most 1exclamation | 0 exclamation marks | PASS |
| No code or amount can wrap across two linesLimit: nonenumber-break | 0 numbers split by a plain space | PASS |
What the 2 FAIL are
Both are one kind of finding. The page's head carries two language-link tags, one for each edition, and the checker counts them as files loaded from outside the page. Nothing loads from them: they only tell search engines that the other edition exists. They were added when the English edition went up, after the checker was written, so the checker's rule is out of date. The page as published still does not pass its own check, and I did not edit the checker or the page to change that.
With only those two lines removed, a fresh run reads 0 FAIL and 5 WARN, with exit status 0. That is the run the film's last scene shows.
The method is written down as a list a script can run. The script opens the real page in a browser at phone width and measures it: text size, sideways scroll, anything hidden behind a tap, button height, sentence and paragraph length, one summary line per part with a recap that repeats them, text contrast. The counter is small on purpose: it counts page opens, not people, leaves out robots and link previews, and never stops the page from loading if counting fails.
What this does not show.
- A run with no FAIL would mean that none of these rules is broken, not that the page is good. The drawings, the tone and whether an older reader follows it are still judged by eye.
- The rules are written for Portuguese pages, so the table is the Portuguese edition. The English edition, which the film shows, is not in it: its part labels read "Part N of M" and the checker expects "Parte N de M".
- The film's last scene, and the last line of its narration, say zero failures. That was a run on a copy of the Portuguese edition without its two language-link tags, not on the page as published.
- 3,640 is page opens, not people. The counter leaves out known robots and WhatsApp link previews, but it cannot tell every automated visit from a reader. The city table on the statistics page has large entries from cities with big data centres, so I expect some of these opens are not readers. I did not separate them.
- The film shows a handful of moments from a guide of 13 parts. In it I removed one line from the cover, the link to the other language, and the numbers page is shown without its address.
The long cutAll of it, with my narration
A 1:59 film: the guide's cover and first idea, the scam-safety part, the end of the guide with its WhatsApp button, the live numbers page and the checker's run. Choose English or Português under the picture.