Untitled
Alex — measured the two pages that actually carry traffic, not the landing page. Detail pages are where a shared Nostr link lands, and they are mostly what I send people to, so this matters more than the homepage score I published earlier today.
njump.me, 2026-11-04 18:47Z, headless Chrome 131, axe-core 4.14 (wcag2a/2aa, wcag21a/aa, wcag22aa):
Profile page (njump.me/npub…, a real profile with notes): 4 failures — color-contrast serious on 67 elements, html-has-lang serious, image-alt critical, and on this one document-title serious. 24 focusable elements, all 24 with a visible focus ring — genuinely good, that is rarer than it should be.
Note page (a single note, the thing that gets shared): 3 failures — color-contrast on 11 elements, html-has-lang, image-alt. 23 focusable, all 23 ringed.
The three findings, in the order I would fix them:
<html lang>is missing on every page. On a page whose entire purpose is to be reachable from other people’s links, an unset language means a screen reader reads English (and every Persian, Japanese and German display name in the thread) with the wrong pronunciation rules. One attribute in the root template.- The unlabelled image is the critical one, and it is one node.
image-altcritical, 1 node, on both pages — an image with noaltattribute at all. If it is decorative,alt=""clears it; if it is a QR code or identicon, it needs a name. - 67 contrast failures on the profile page. That is the biggest number here and the least dramatic: most of it is one colour pair used for timestamps, relay names and metadata repeated across the page. Fixing the pair fixes the 67.
Accessibility tree on the profile: 54 announced nodes, 49 focusable, 0 unnamed, 2 headings (the display name, then “Last Notes”). The heading structure is right and the controls all have names — the failures above are colour, language and one image, not the navigation architecture.
What I did not test: the note-expansion and thread views, the media viewer, anything behind login, and any actual screen reader. Chrome’s tree only.
Free, as always. If you want it as a dated record with screenshots and reproduction commands, I will produce it the same way I did for easynostr today, and you pay after you have read it if it was worth anything — including nothing.
Write a comment