open-standards/wai/vector-conformance/vectors/a11y/alternatives.json
Transaction Science 10ba6e9bcc wai-vector: the text layer and section 5, text and accessibility (D7-7)
graphics-vector.md section 5 (Draft): what a sink exposes to assistive
technology and to a text consumer, and how. Each text block's active set (the
effective windows of the items that draw it, merged), the projection at a
frame and the transcript as exact JSON, the text record and its digest, ruby,
purposes, writing modes and the cluster rule.

- wai-vector: src/text.rs (no_std, no dependency), the a11y and text commands,
  and vectors verify recomputing every text record.
- The corpus: a new a11y group, each payload with its text record
  (<name>.a11y.jsonl) and its digest in the expected file; canonical and
  refusal vectors for TEXT. No existing expected file changes.
- tests/text_layer.rs: each rule of section 5, with expected JSON written by
  hand from the text, each falsified once.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 02:43:02 -04:00

86 lines
3.2 KiB
JSON

{
"header":{"magic":"WVG1","format":1,"tb":120000,"t0":0,"dur":120000,"design_w":640,"design_h":360,"n_sizes":1,"n_rates":1,"n_sets":1,"n_tables":0,"n_paints":2,"n_texts":3,"n_tracks":4,"n_paths":4,"n_items":5,"n_keys":4,"n_glyphs":4,"n_clusters":4,"path_contours":4,"path_points":22,"strings_len":25,"inline_len":0,"held_len":105523,"zero@72":[0,0,0,0,0,0,0,0]},
"sizes":[
{"w":640,"h":360,"cost":1307915}
],
"rates":[
{"num":25,"den":1}
],
"sets":[
{"carriage":0,"zero@1":[0,0,0],"length":105523,"sha256":"05476c4658ef7366c7700736487eac4c3c1b7d21264978c7d05bd4c7427736c9"}
],
"tables":[],
"paints":[
[255,255,255,255],
[220,40,40,255]
],
"tracks":[
{"kind":2,"zero@1":0,"zero@2":0,"n_keys":1},
{"kind":2,"zero@1":0,"zero@2":0,"n_keys":1},
{"kind":2,"zero@1":0,"zero@2":0,"n_keys":1},
{"kind":2,"zero@1":0,"zero@2":0,"n_keys":1}
],
"keys":[
[0,4096,0,[0,0,0]],
[0,76800,0,[0,0,0]],
[0,102400,0,[0,0,0]],
[0,128000,0,[0,0,0]]
],
"paths":[
{"n_contours":1,"n_points":10,"zero@4":0,"xmin":0,"ymin":-60,"xmax":240,"ymax":100},
{"n_contours":1,"n_points":4,"zero@4":0,"xmin":0,"ymin":0,"xmax":64,"ymax":64},
{"n_contours":1,"n_points":4,"zero@4":0,"xmin":0,"ymin":0,"xmax":32,"ymax":32},
{"n_contours":1,"n_points":4,"zero@4":0,"xmin":0,"ymin":0,"xmax":16,"ymax":16}
],
"path_ends":[9,3,3,3],
"path_points":[
[0,0,0],
[60,100,0],
[120,0,0],
[180,100,0],
[240,0,0],
[200,0,0],
[180,40,0],
[120,-60,0],
[60,40,0],
[40,0,0],
[0,0,0],
[64,0,0],
[64,64,0],
[0,64,0],
[0,0,0],
[32,0,0],
[32,32,0],
[0,32,0],
[0,0,0],
[16,0,0],
[16,16,0],
[0,16,0]
],
"texts":[
{"purpose":10,"dir":0,"lang_len":2,"mode":0,"group":0,"ruby":0,"ruby_start":0,"ruby_len":0,"str_len":3},
{"purpose":11,"dir":0,"lang_len":2,"mode":0,"group":0,"ruby":0,"ruby_start":0,"ruby_len":0,"str_len":12},
{"purpose":7,"dir":0,"lang_len":2,"mode":0,"group":0,"ruby":0,"ruby_start":0,"ruby_len":0,"str_len":4}
],
"items":[
{"kind":2,"rule":0,"zero@2":0,"ref":0,"paint":0,"text":0,"zero@10":0,"n_glyphs":0,"n_clusters":0,"t_on":0,"t_off":72000,"unit_scale":16777216,"m00":65535,"m01":65535,"m10":65535,"m11":65535,"tx":0,"ty":65535,"op":65535,"zero@42":[0,0,0,0,0,0]},
{"kind":2,"rule":0,"zero@2":0,"ref":1,"paint":1,"text":1,"zero@10":0,"n_glyphs":0,"n_clusters":0,"t_on":48000,"t_off":120000,"unit_scale":16777216,"m00":65535,"m01":65535,"m10":65535,"m11":65535,"tx":1,"ty":65535,"op":65535,"zero@42":[0,0,0,0,0,0]},
{"kind":2,"rule":0,"zero@2":0,"ref":2,"paint":0,"text":2,"zero@10":0,"n_glyphs":0,"n_clusters":0,"t_on":0,"t_off":24000,"unit_scale":16777216,"m00":65535,"m01":65535,"m10":65535,"m11":65535,"tx":2,"ty":65535,"op":65535,"zero@42":[0,0,0,0,0,0]},
{"kind":2,"rule":0,"zero@2":0,"ref":3,"paint":1,"text":65535,"zero@10":0,"n_glyphs":0,"n_clusters":0,"t_on":0,"t_off":120000,"unit_scale":16777216,"m00":65535,"m01":65535,"m10":65535,"m11":65535,"tx":3,"ty":65535,"op":65535,"zero@42":[0,0,0,0,0,0]},
{"kind":3,"rule":0,"zero@2":0,"ref":0,"paint":0,"text":2,"zero@10":0,"n_glyphs":4,"n_clusters":4,"t_on":96000,"t_off":120000,"unit_scale":131072,"m00":65535,"m01":65535,"m10":65535,"m11":65535,"tx":65535,"ty":65535,"op":65535,"zero@42":[0,0,0,0,0,0]}
],
"glyphs":[
[66,0,4096,49152],
[111,0,6596,49152],
[116,0,8836,49152],
[104,0,10276,49152]
],
"clusters":[
[1,0,0,1],
[1,0,1,1],
[1,0,2,1],
[1,0,3,1]
],
"strings":"enWAIenA red squareenBoth",
"inline":""
}