4.6 KiB
Round 2 text fixtures — measured summary
Generated by round2-textkit. Em size: 1.28 staff space. Target: 1920x1080.
Faces
- chain[0]
/usr/share/fonts/tex-gyre/texgyrepagella-regular.otf— familyTeX Gyre Pagella, versionSome("Version 2.501;PS 2.501;ffdkm 0.1"), sha25644e64260716d8f2bbe412baa1ee99b7c995190ac4573177c24def0b9200438c7 - chain[1]
/usr/share/fonts/liberation-fonts/LiberationSerif-Regular.ttf— familyLiberation Serif, versionSome("Version 2.1.5"), sha256058ea80864aef09a23f45cbec2bb5400bc3dfbdea01c3f10538a21fcb497fb74
Shaping identity (from the first fixture; identical for all)
- shaper:
rustybuzz0.20.1 - unicode-bidi: crate
0.3.18, Unicode16.0.0 - unicode-segmentation: crate
1.13.3, Unicode17.0.0 - the two Unicode-data versions disagree — reported, not reconciled (
crate::findings::W3_F2).
Fixtures
F-A — check 1 (faithful consumption), check 5 (accessibility)
text: "Allegro affettuoso — al fine"
28 codepoints, 30 bytes, 1 segments, 26 glyphs, 26 clusters
| segment | source | face | direction | script | glyphs |
|---|---|---|---|---|---|
| 0 | 0..30 | Some(0) | Ltr | Latn | 26 |
check 5 (accessibility, disqualifying) — name must be exactly Allegro affettuoso — al fine (30 bytes, hex 416c6c6567726f20616666657474756f736f20e2809420616c2066696e65); Ligatures: the name must be the source ff/fi, never the ligature glyphs that drew them.
F-B — check 2 (fallback, forced)
text: "Coro אבג"
8 codepoints, 11 bytes, 2 segments, 8 glyphs, 8 clusters
| segment | source | face | direction | script | glyphs |
|---|---|---|---|---|---|
| 0 | 0..5 | Some(0) | Ltr | Latn | 5 |
| 1 | 5..11 | Some(1) | Rtl | Hebr | 3 |
check 5 (accessibility, disqualifying) — name must be exactly Coro אבג (11 bytes, hex 436f726f20d790d791d792); Two segments, two faces: the name must be the whole logical string, assembled in logical order, not the visual order the Hebrew tail is drawn in.
F-C — check 2 (uncovered codepoint)
text: "Coro ا"
6 codepoints, 7 bytes, 2 segments, 5 glyphs, 6 clusters
| segment | source | face | direction | script | glyphs |
|---|---|---|---|---|---|
| 0 | 0..5 | Some(0) | Ltr | Latn | 5 |
| 1 | 5..7 | None | Rtl | Arab | 0 |
check 5 (accessibility, disqualifying) — name must be exactly Coro ا (7 bytes, hex 436f726f20d8a7); Uncovered codepoint: U+0627 draws no ink in either declared face, and must appear in the name regardless — the tree carries the text, not the ink.
F-D — SUPPLEMENTARY bidi evidence (Hebrew/Latin) — check 3 remains NOT RUN (no Arabic-capable face; recipe §1.2)
text: "Allegro אבג con brio"
20 codepoints, 23 bytes, 3 segments, 20 glyphs, 20 clusters
| segment | source | face | direction | script | glyphs |
|---|---|---|---|---|---|
| 0 | 0..8 | Some(0) | Ltr | Latn | 8 |
| 1 | 8..14 | Some(1) | Rtl | Hebr | 3 |
| 2 | 14..23 | Some(0) | Ltr | Latn | 9 |
check 5 (accessibility, disqualifying) — name must be exactly Allegro אבג con brio (23 bytes, hex 416c6c6567726f20d790d791d79220636f6e206272696f); Three visual runs at levels 0/1/0: the concatenation is logical-order, so a tree built by walking the visual runs left to right fails here and only here.
F-E — check 4 (hit testing / caret)
text: "Cafe\u{301} — resume\u{301}"
15 codepoints, 19 bytes, 1 segments, 13 glyphs, 13 clusters
| segment | source | face | direction | script | glyphs |
|---|---|---|---|---|---|
| 0 | 0..19 | Some(0) | Ltr | Latn | 13 |
check 5 (accessibility, disqualifying) — name must be exactly Café — resumé (19 bytes, hex 43616665cc8120e2809420726573756d65cc81); NFD: Cafe\u{301} must surface as NFD. A tree exposing Café (NFC) has silently normalized, and that is a FAIL, not a formatting difference.
Check-5 role vocabulary (identical for every fixture)
| platform | accepted | prohibited |
|---|---|---|
| accesskit-0.24 | Label, TextRun, Paragraph | Image, GraphicsObject, GraphicsSymbol, GenericContainer, Unknown, Pane |
| at-spi2 | label, static, text, paragraph | image, canvas, filler, panel, unknown |
| aria | (none), text, paragraph | img, presentation, none, graphics-object, graphics-symbol |
| macos-nsaccessibility | AXStaticText | AXImage, AXUnknown, AXGroup |
| windows-uia | Text | Image, Pane, Custom |
Name composition: single-text-node-name, or logical-order concatenation of the run subtree's text-descendant names — either must equal name byte for byte
Prohibited outcomes, whatever the role: absent-from-tree, name-empty, name-normalized, name-is-shaped-glyphs, name-drops-unresolved-codepoints