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]>
43 lines
2.6 KiB
JSON
43 lines
2.6 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":1,"n_texts":2,"n_tracks":0,"n_paths":0,"n_items":2,"n_keys":0,"n_glyphs":4,"n_clusters":4,"path_contours":0,"path_points":0,"strings_len":16,"inline_len":554,"held_len":0,"zero@72":[0,0,0,0,0,0,0,0]},
|
|
"sizes":[
|
|
{"w":640,"h":360,"cost":258277}
|
|
],
|
|
"rates":[
|
|
{"num":25,"den":1}
|
|
],
|
|
"sets":[
|
|
{"carriage":1,"zero@1":[0,0,0],"length":554,"sha256":"6b368f6c7be1d26780df1299e2842791f9a34de167ec7bd655f4dd1564e3d9fd"}
|
|
],
|
|
"tables":[],
|
|
"paints":[
|
|
[30,60,200,255]
|
|
],
|
|
"tracks":[],
|
|
"keys":[],
|
|
"paths":[],
|
|
"path_ends":[],
|
|
"path_points":[],
|
|
"texts":[
|
|
{"purpose":5,"dir":0,"lang_len":2,"mode":0,"group":0,"ruby":2,"ruby_start":0,"ruby_len":3,"str_len":6},
|
|
{"purpose":6,"dir":0,"lang_len":2,"mode":0,"group":0,"ruby":0,"ruby_start":0,"ruby_len":0,"str_len":6}
|
|
],
|
|
"items":[
|
|
{"kind":3,"rule":0,"zero@2":0,"ref":0,"paint":0,"text":0,"zero@10":0,"n_glyphs":2,"n_clusters":2,"t_on":0,"t_off":120000,"unit_scale":393216,"m00":65535,"m01":65535,"m10":65535,"m11":65535,"tx":65535,"ty":65535,"op":65535,"zero@42":[0,0,0,0,0,0]},
|
|
{"kind":3,"rule":0,"zero@2":0,"ref":0,"paint":0,"text":1,"zero@10":0,"n_glyphs":2,"n_clusters":2,"t_on":0,"t_off":120000,"unit_scale":196608,"m00":65535,"m01":65535,"m10":65535,"m11":65535,"tx":65535,"ty":65535,"op":65535,"zero@42":[0,0,0,0,0,0]}
|
|
],
|
|
"glyphs":[
|
|
[2,0,0,9000],
|
|
[3,0,9000,9000],
|
|
[5,0,0,3000],
|
|
[5,0,4000,3000]
|
|
],
|
|
"clusters":[
|
|
[1,0,0,3],
|
|
[1,0,3,3],
|
|
[1,0,0,3],
|
|
[1,0,3,3]
|
|
],
|
|
"strings":"ja漢字jaかん",
|
|
"inline":"574f53310100000000080000080000002100000008000000d500000000000000000000000000000000000000000000000100010004000000640088faf40100000200020008000000640088fa4c0400000300010008000000640088fa4c0400000400010005000000640088fa4c0400000500010003000000640088fa4c040000060001000100000000000000000000000900010004000000000088fad0070000030003000700070004000200000003006400000000f401000000f40188fa00640088fa0064000000004c040000004c0488fa00640088fa002c0138ff002c0150fb00840350fb00840338ff0058020000004c040000014c0444fd004c0488fa01580288fa00640088fa01640044fd006400000001640000000090017cfc0220030cfe024c0488fa004c0400000064000000004c04000000580288fa0000000000000000000000d007000000d00788fa00000088fa006e616d653d73796e7468657469632d610a736f757263653d67656e657261746564206279207761692d766563746f7220766563746f72732067656e2066726f6d20666f726d756c61730a6c6963656e63653d4170616368652d322e300a0a54686973206f75746c696e6520736574207761732067656e65726174656420696e2074686973207265706f7369746f72792066726f6d20666f726d756c61732e204974206973206c6963656e73656420756e6465722074686520417061636865204c6963656e73652c2056657273696f6e20322e302e0a"
|
|
}
|