browser-sink §14.9: where a device has no decoder of wai.graphics.vector, a composing page presents each graphics piece's floor (graphics-vector §6.3), the piece's transcript as wai.text.zstd, as text: the blocks active at the clock's tick, in block order, each with its language, direction and writing mode. A piece presents its overlay or its floor, never both. Before presenting, the page holds the floor object to its piece: its derived_from names the piece's base (floor_base), its payload is the raw frame and no other Zstandard frame (floor_frame), its target states the transcript's length and a timebase (floor_target), and its content is a transcript in graphics-vector §5.4's one encoding (floor_transcript). A caption or a subtitle block is never presented from the floor (caption_track): the text component of its language carries it, and the text layer presents it or not as the viewer set it. A forced_narrative block is presented from the floor unless the text layer shows a cue of its language with its string at that millisecond (forced_in_cue), so the words are on the page once. The text layer presents one text component of a package, or none. wai-rs browser_sink::floor is the reference (read, present), which wai-web's compose bundle calls as TextFloor. Corpus live-conformance/browser-floor/ (49 floors, 25 presentations), written by wai_browser_floor_vectors and regenerating byte for byte on x86_64 and aarch64; tests/browser_floor.rs also reads the floors wai-pack wrote for pack-conformance/multi/multi-captions-01, and wai-web's compose::floor_tests holds them to wai-vector's transcripts. browser_floor_verify.py, the second implementation, refuses 72 mutated floors each with its defect's reason, fails 23 mutated copies of the corpus, and each of its 32 checks, dropped, is caught. compose/run.mjs gains case 10. Not here: a base that is routed and then refused when loaded still refuses the package, and the overlay path does not yet leave out caption items (graphics-vector §5.7). Co-Authored-By: Claude <[email protected]>
2 KiB
live-conformance/browser-floor — a graphics component's text floor in a page
The corpus of extensions/browser-sink.md §14.9: floor
objects of a graphics component (graphics-vector §6.3),
each read or refused, and what a page presents from a floor at a tick beside the cues its text
layer presents.
member of vectors.json |
what each case holds, and what a conforming implementation reaches |
|---|---|
floors |
a floor object's manifest and payload (hexadecimal), and base, the content hash of its piece's base entry; the outcome (read, or refused with the reason), and for a floor that reads its tb and its transcript, the payload's content |
presentations |
the floor read (a case of floors, by name), a media tick, and the cues of the text component the page's text layer presents (none where it presents none), each with its lang, its start and end in milliseconds and its text; the result: ms, the tick's millisecond; presented, the blocks the page presents as text, in block order, each a node object with announce; and withheld, each block active at the tick that the floor does not present, with why |
Every transcript is written by the generator, and every base is named by a constant: no case
describes a programme. Each refused floor is a control of one defect in the floor programme.
wai_browser_floor_vectors verify and tests/browser_floor.rs check that vectors.json
regenerates byte for byte and that wai-rs reaches every outcome; the test also reads the floor
objects of pack-conformance/multi/multi-captions-01,
which wai-pack wrote. ../browser_floor_verify.py is the second implementation, written from
the extension's text, sharing no code with wai-rs, and run as python3 -I: it recomputes every
case, requires every mutated copy of the corpus to fail, and drops each of its own checks in turn
and requires the corpus to catch it.