Give every fastext destination a distinct mark; add skip-link, fix aria-label
All checks were successful
Deploy / deploy (push) Successful in 23s
All checks were successful
Deploy / deploy (push) Successful in 23s
Colours: "if the intent is to have them all different colors than lets have them all different colors." The locked eight only give five safe as full text (blue fails contrast, black's invisible on black), so the other three get their own treatments instead of sharing plain ink: Watch gets blue as a swatch-only accent (the button cap's colour, not the label), Activity gets an ordered-dither swatch (the other legal way to mark something without a ninth colour), and Settings alone keeps plain ink deliberately, as the one page with no live status of its own. Accessibility (items 1 and 3 from the design review, item 2 skipped per request — the header's download figure stays live and unmuted): - Added a skip-link, off-screen until focused, jumping past the 8-item top nav straight to each page's #main-content. - Renamed the nav's aria-label from "Fastext" (meaningless without the visual teletext context) to "Page navigation".
This commit is contained in:
parent
15936027de
commit
5dd49c505c
4 changed files with 79 additions and 28 deletions
|
|
@ -8,6 +8,26 @@
|
|||
RULER (every bar is --bar-cells wide, no exceptions).
|
||||
═══════════════════════════════════════════════════════ */
|
||||
|
||||
/* ── Skip-link ──────────────────────────────────────────
|
||||
Off-screen until it receives focus, then it's a plain field row
|
||||
like any other — a solid colour ground, no border — sitting above
|
||||
everything else so tabbing past it reaches the header next. */
|
||||
.skip-link {
|
||||
position: absolute;
|
||||
top: -999px;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
padding: 0.5em 1ch;
|
||||
background: var(--field);
|
||||
color: var(--ink);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.16em;
|
||||
}
|
||||
.skip-link:focus {
|
||||
top: 0;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* ── Header row ─────────────────────────────────────────
|
||||
Teletext's top line, unchanged for forty years: the page
|
||||
number you are on, who is transmitting, and the clock. It
|
||||
|
|
@ -512,8 +532,10 @@ a.tt-row:focus-visible .tt-row-sub { color: var(--tt-black); }
|
|||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
/* The key's colour is carried by a solid cell at its head — the
|
||||
physical coloured button on the remote. */
|
||||
/* The key's identity is carried by a cell at its head — the physical
|
||||
coloured button on the remote. Solid for most; k-blue and k-dither
|
||||
override its background below, since a flat swatch can't carry
|
||||
every one of the eight destinations without repeating a colour. */
|
||||
.fastext a > span, .fastext-here > span {
|
||||
min-width: 0;
|
||||
overflow: hidden;
|
||||
|
|
@ -538,6 +560,15 @@ a.tt-row:focus-visible .tt-row-sub { color: var(--tt-black); }
|
|||
.fastext .k-yellow { color: var(--voice); }
|
||||
.fastext .k-cyan { color: var(--live); }
|
||||
.fastext .k-magenta { color: var(--pending); }
|
||||
/* Blue fails contrast as body text on black, so it marks the swatch
|
||||
only — the button cap's colour, not the printed label — while the
|
||||
row's own text stays legible ink. */
|
||||
.fastext .k-blue::before { background: var(--field); }
|
||||
.fastext .k-blue:hover, .fastext .k-blue:focus-visible { background: var(--field); }
|
||||
/* The one other legal way to get a distinct mark out of eight colours
|
||||
without a ninth: an ordered dither, same mechanism as --dither-mid,
|
||||
in place of a flat swatch. */
|
||||
.fastext .k-dither::before { background: var(--dither-mid); }
|
||||
.fastext a:hover, .fastext a:focus-visible {
|
||||
background: currentColor;
|
||||
outline: none;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue