@hypen-space/web 0.5.2 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvas/accessibility.d.ts +118 -11
- package/dist/canvas/accessibility.js +470 -108
- package/dist/canvas/accessibility.js.map +1 -1
- package/dist/canvas/dispatch.d.ts +24 -0
- package/dist/canvas/dispatch.js +62 -0
- package/dist/canvas/dispatch.js.map +1 -0
- package/dist/canvas/editing.d.ts +178 -0
- package/dist/canvas/editing.js +590 -0
- package/dist/canvas/editing.js.map +1 -0
- package/dist/canvas/events.d.ts +28 -23
- package/dist/canvas/events.js +76 -128
- package/dist/canvas/events.js.map +1 -1
- package/dist/canvas/focus.d.ts +78 -0
- package/dist/canvas/focus.js +182 -0
- package/dist/canvas/focus.js.map +1 -0
- package/dist/canvas/index.d.ts +3 -1
- package/dist/canvas/index.js +3 -1
- package/dist/canvas/index.js.map +1 -1
- package/dist/canvas/paint.d.ts +16 -3
- package/dist/canvas/paint.js +283 -41
- package/dist/canvas/paint.js.map +1 -1
- package/dist/canvas/renderer.d.ts +20 -1
- package/dist/canvas/renderer.js +181 -50
- package/dist/canvas/renderer.js.map +1 -1
- package/dist/canvas/selection.js +31 -177
- package/dist/canvas/selection.js.map +1 -1
- package/dist/canvas/text-geometry.d.ts +72 -0
- package/dist/canvas/text-geometry.js +244 -0
- package/dist/canvas/text-geometry.js.map +1 -0
- package/dist/canvas/text.js +42 -9
- package/dist/canvas/text.js.map +1 -1
- package/dist/canvas/types.d.ts +7 -1
- package/dist/canvas/variants.d.ts +4 -1
- package/dist/canvas/variants.js +22 -3
- package/dist/canvas/variants.js.map +1 -1
- package/dist/dom/a11y-styles.d.ts +20 -0
- package/dist/dom/a11y-styles.js +61 -0
- package/dist/dom/a11y-styles.js.map +1 -0
- package/dist/dom/applicators/aria.d.ts +19 -0
- package/dist/dom/applicators/aria.js +36 -0
- package/dist/dom/applicators/aria.js.map +1 -0
- package/dist/dom/applicators/events.d.ts +7 -0
- package/dist/dom/applicators/events.js +35 -8
- package/dist/dom/applicators/events.js.map +1 -1
- package/dist/dom/applicators/index.js +4 -0
- package/dist/dom/applicators/index.js.map +1 -1
- package/dist/dom/components/hypenapp.d.ts +25 -1
- package/dist/dom/components/hypenapp.js +213 -245
- package/dist/dom/components/hypenapp.js.map +1 -1
- package/dist/dom/components/index.js +7 -0
- package/dist/dom/components/index.js.map +1 -1
- package/dist/dom/components/spinner.js +24 -10
- package/dist/dom/components/spinner.js.map +1 -1
- package/dist/dom/components/tabs.d.ts +27 -0
- package/dist/dom/components/tabs.js +69 -0
- package/dist/dom/components/tabs.js.map +1 -0
- package/dist/dom/components/visuallyhidden.d.ts +9 -0
- package/dist/dom/components/visuallyhidden.js +26 -0
- package/dist/dom/components/visuallyhidden.js.map +1 -0
- package/dist/dom/operability.d.ts +100 -0
- package/dist/dom/operability.js +298 -0
- package/dist/dom/operability.js.map +1 -0
- package/dist/dom/renderer.d.ts +98 -5
- package/dist/dom/renderer.js +398 -63
- package/dist/dom/renderer.js.map +1 -1
- package/dist/dom/route-focus.d.ts +42 -0
- package/dist/dom/route-focus.js +88 -0
- package/dist/dom/route-focus.js.map +1 -0
- package/dist/dom/semantics.d.ts +35 -0
- package/dist/dom/semantics.js +184 -0
- package/dist/dom/semantics.js.map +1 -0
- package/package.json +2 -2
- package/src/canvas/QUICKSTART.md +4 -4
- package/src/canvas/README.md +55 -29
- package/src/canvas/accessibility.ts +507 -115
- package/src/canvas/dispatch.ts +78 -0
- package/src/canvas/editing.ts +697 -0
- package/src/canvas/events.ts +89 -142
- package/src/canvas/focus.ts +216 -0
- package/src/canvas/index.ts +8 -1
- package/src/canvas/paint.ts +339 -42
- package/src/canvas/renderer.ts +218 -70
- package/src/canvas/selection.ts +52 -210
- package/src/canvas/text-geometry.ts +311 -0
- package/src/canvas/text.ts +43 -9
- package/src/canvas/types.ts +14 -1
- package/src/canvas/variants.ts +24 -5
- package/src/dom/a11y-styles.ts +65 -0
- package/src/dom/applicators/aria.ts +41 -0
- package/src/dom/applicators/events.ts +38 -7
- package/src/dom/applicators/index.ts +5 -0
- package/src/dom/components/hypenapp.ts +244 -272
- package/src/dom/components/index.ts +7 -0
- package/src/dom/components/spinner.ts +31 -13
- package/src/dom/components/tabs.ts +76 -0
- package/src/dom/components/visuallyhidden.ts +30 -0
- package/src/dom/operability.ts +312 -0
- package/src/dom/renderer.ts +455 -63
- package/src/dom/route-focus.ts +98 -0
- package/src/dom/semantics.ts +199 -0
- package/dist/canvas/input.d.ts +0 -76
- package/dist/canvas/input.js +0 -207
- package/dist/canvas/input.js.map +0 -1
- package/src/canvas/input.ts +0 -251
package/dist/dom/renderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/dom/renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/dom/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route-change focus management.
|
|
3
|
+
*
|
|
4
|
+
* When the Router swaps routes, keyboard and screen-reader focus is left on
|
|
5
|
+
* an element that just left the document — the user is stranded and AT
|
|
6
|
+
* announces nothing. This module defines the focus contract for navigation
|
|
7
|
+
* (design Open Question #4) and the DOM renderer applies it after each patch
|
|
8
|
+
* batch:
|
|
9
|
+
*
|
|
10
|
+
* 1. A batch is a **navigation** when it contains at least one `detach` (the
|
|
11
|
+
* leaving route, unlinked but kept alive by the Router cache) and at least
|
|
12
|
+
* one incoming subtree root (an `attach` of a cached route, or a fresh
|
|
13
|
+
* `create`+`insert` route build).
|
|
14
|
+
* 2. On navigation, focus moves to — in order of preference:
|
|
15
|
+
* a. the element that held focus when the incoming subtree was detached
|
|
16
|
+
* (**focus restore** on cached re-entry), if it is still inside the
|
|
17
|
+
* subtree;
|
|
18
|
+
* b. the subtree's first heading (`h1`–`h6` / `role="heading"`) or `main`
|
|
19
|
+
* landmark — the "start of the new page" for AT users;
|
|
20
|
+
* c. the subtree root itself.
|
|
21
|
+
* Non-natively-focusable targets get `tabindex="-1"` (programmatic focus
|
|
22
|
+
* only — they do not join the Tab order).
|
|
23
|
+
* 3. Focus-restore memory is keyed by the detached subtree's root NodeId and
|
|
24
|
+
* is dropped the moment a `remove` arrives for that id (Router LRU
|
|
25
|
+
* eviction) — **focus restore never targets an evicted NodeId**, the
|
|
26
|
+
* invariant this contract exists to guarantee.
|
|
27
|
+
*
|
|
28
|
+
* The contract is opt-out: `DOMRendererOptions.routeFocus: "off"` disables it
|
|
29
|
+
* for apps that own focus management themselves.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Pick the element that should receive focus inside a freshly-shown route
|
|
33
|
+
* subtree: first heading, else first `main` landmark, else the root itself.
|
|
34
|
+
*/
|
|
35
|
+
export declare function findRouteFocusTarget(root: HTMLElement): HTMLElement;
|
|
36
|
+
/**
|
|
37
|
+
* Move focus to `target`, granting it programmatic focusability
|
|
38
|
+
* (`tabindex="-1"`) when it is neither natively focusable nor already
|
|
39
|
+
* carrying a tabindex. `-1` keeps it out of the Tab order — this is a
|
|
40
|
+
* navigation landing point, not a new tab stop.
|
|
41
|
+
*/
|
|
42
|
+
export declare function focusRouteTarget(target: HTMLElement): void;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route-change focus management.
|
|
3
|
+
*
|
|
4
|
+
* When the Router swaps routes, keyboard and screen-reader focus is left on
|
|
5
|
+
* an element that just left the document — the user is stranded and AT
|
|
6
|
+
* announces nothing. This module defines the focus contract for navigation
|
|
7
|
+
* (design Open Question #4) and the DOM renderer applies it after each patch
|
|
8
|
+
* batch:
|
|
9
|
+
*
|
|
10
|
+
* 1. A batch is a **navigation** when it contains at least one `detach` (the
|
|
11
|
+
* leaving route, unlinked but kept alive by the Router cache) and at least
|
|
12
|
+
* one incoming subtree root (an `attach` of a cached route, or a fresh
|
|
13
|
+
* `create`+`insert` route build).
|
|
14
|
+
* 2. On navigation, focus moves to — in order of preference:
|
|
15
|
+
* a. the element that held focus when the incoming subtree was detached
|
|
16
|
+
* (**focus restore** on cached re-entry), if it is still inside the
|
|
17
|
+
* subtree;
|
|
18
|
+
* b. the subtree's first heading (`h1`–`h6` / `role="heading"`) or `main`
|
|
19
|
+
* landmark — the "start of the new page" for AT users;
|
|
20
|
+
* c. the subtree root itself.
|
|
21
|
+
* Non-natively-focusable targets get `tabindex="-1"` (programmatic focus
|
|
22
|
+
* only — they do not join the Tab order).
|
|
23
|
+
* 3. Focus-restore memory is keyed by the detached subtree's root NodeId and
|
|
24
|
+
* is dropped the moment a `remove` arrives for that id (Router LRU
|
|
25
|
+
* eviction) — **focus restore never targets an evicted NodeId**, the
|
|
26
|
+
* invariant this contract exists to guarantee.
|
|
27
|
+
*
|
|
28
|
+
* The contract is opt-out: `DOMRendererOptions.routeFocus: "off"` disables it
|
|
29
|
+
* for apps that own focus management themselves.
|
|
30
|
+
*/
|
|
31
|
+
/** Tags that are natively focusable without a tabindex. */
|
|
32
|
+
const NATIVELY_FOCUSABLE = new Set(["A", "BUTTON", "INPUT", "TEXTAREA", "SELECT"]);
|
|
33
|
+
/** Heading hosts (`<h1>`–`<h6>`). */
|
|
34
|
+
const HEADING_TAGS = new Set(["H1", "H2", "H3", "H4", "H5", "H6"]);
|
|
35
|
+
const matches = (el, pred) => {
|
|
36
|
+
try {
|
|
37
|
+
return pred(el);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const isHeading = (el) => HEADING_TAGS.has(el.tagName?.toUpperCase() ?? "") ||
|
|
44
|
+
el.getAttribute?.("role") === "heading";
|
|
45
|
+
const isMain = (el) => el.tagName?.toUpperCase() === "MAIN" || el.getAttribute?.("role") === "main";
|
|
46
|
+
/**
|
|
47
|
+
* Depth-first search over `children` (works on both real DOM collections and
|
|
48
|
+
* test-double arrays) for the first element matching `pred`.
|
|
49
|
+
*/
|
|
50
|
+
function findFirst(root, pred) {
|
|
51
|
+
const children = Array.from((root.children ?? []));
|
|
52
|
+
for (const child of children) {
|
|
53
|
+
if (matches(child, pred))
|
|
54
|
+
return child;
|
|
55
|
+
const nested = findFirst(child, pred);
|
|
56
|
+
if (nested)
|
|
57
|
+
return nested;
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Pick the element that should receive focus inside a freshly-shown route
|
|
63
|
+
* subtree: first heading, else first `main` landmark, else the root itself.
|
|
64
|
+
*/
|
|
65
|
+
export function findRouteFocusTarget(root) {
|
|
66
|
+
const heading = findFirst(root, isHeading);
|
|
67
|
+
if (heading)
|
|
68
|
+
return heading;
|
|
69
|
+
const main = findFirst(root, isMain);
|
|
70
|
+
if (main)
|
|
71
|
+
return main;
|
|
72
|
+
return root;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Move focus to `target`, granting it programmatic focusability
|
|
76
|
+
* (`tabindex="-1"`) when it is neither natively focusable nor already
|
|
77
|
+
* carrying a tabindex. `-1` keeps it out of the Tab order — this is a
|
|
78
|
+
* navigation landing point, not a new tab stop.
|
|
79
|
+
*/
|
|
80
|
+
export function focusRouteTarget(target) {
|
|
81
|
+
const tag = target.tagName?.toUpperCase() ?? "";
|
|
82
|
+
const hasTabindex = target.getAttribute?.("tabindex") != null;
|
|
83
|
+
if (!NATIVELY_FOCUSABLE.has(tag) && !hasTabindex) {
|
|
84
|
+
target.setAttribute?.("tabindex", "-1");
|
|
85
|
+
}
|
|
86
|
+
target.focus?.();
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=route-focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-focus.js","sourceRoot":"","sources":["../../src/dom/route-focus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,2DAA2D;AAC3D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEnF,qCAAqC;AACrC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAQnE,MAAM,OAAO,GAAG,CAAC,EAAe,EAAE,IAAkC,EAAW,EAAE;IAC/E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAAe,EAAW,EAAE,CAC7C,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACjD,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;AAE1C,MAAM,MAAM,GAAG,CAAC,EAAe,EAAW,EAAE,CAC1C,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;AAE/E;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAiB,EAAE,IAAkC;IACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAA2B,CAAC,CAAC;IAC7E,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAiB;IACpD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAmB,EAAE,SAAS,CAAC,CAAC;IAC1D,IAAI,OAAO;QAAE,OAAO,OAAsB,CAAC;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAmB,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,IAAI;QAAE,OAAO,IAAmB,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAC9D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accessibility semantics → DOM.
|
|
3
|
+
*
|
|
4
|
+
* The engine derives a platform-neutral {@link Semantics} block (role, heading
|
|
5
|
+
* level, busy, and in later phases name/state/hidden/…) and ships it on
|
|
6
|
+
* `create` patches. This module is the DOM translation: it maps that block
|
|
7
|
+
* onto ARIA / native HTML.
|
|
8
|
+
*
|
|
9
|
+
* Guiding rule: **let native HTML do the work; never emit a redundant or
|
|
10
|
+
* misplaced role.** Most Hypen components render a semantic native element
|
|
11
|
+
* whose tag already conveys the correct role (`<button>`, `<a>`, `<p>`,
|
|
12
|
+
* `<img>`, `<input>`, `<select>`, `<textarea>`, `<h1>`–`<h6>`). Some render a
|
|
13
|
+
* wrapper around the real control (`Checkbox`/`Switch` are a `<label>` around a
|
|
14
|
+
* nested `<input>`), where putting the role on the wrapper would be flat wrong.
|
|
15
|
+
*
|
|
16
|
+
* So we only apply an explicit `role` when the host is a *generic* container
|
|
17
|
+
* (`<div>`/`<span>`) that conveys nothing on its own — which is exactly the
|
|
18
|
+
* handful of cases that need it (`Spinner`, `ProgressBar`). Everywhere else the
|
|
19
|
+
* native element is already correct, and the {@link Semantics} block still
|
|
20
|
+
* travels to the non-DOM renderers (Canvas shadow, iOS, Android) that lack
|
|
21
|
+
* native semantics.
|
|
22
|
+
*/
|
|
23
|
+
import type { Semantics } from "@hypen-space/core/types";
|
|
24
|
+
/**
|
|
25
|
+
* Apply derived accessibility semantics to a DOM element.
|
|
26
|
+
*
|
|
27
|
+
* Called at create (first paint) and again on every `setSemantics` patch
|
|
28
|
+
* with the node's complete re-resolved block. Idempotent, and **clearing**:
|
|
29
|
+
* an attribute this module set on a previous pass that the new block no
|
|
30
|
+
* longer produces is removed (a name reverting from explicit to derived
|
|
31
|
+
* must drop its stale `aria-label`, a cleared `.expanded` its
|
|
32
|
+
* `aria-expanded`). No-op when `semantics` was never present, so
|
|
33
|
+
* non-semantic nodes pay nothing.
|
|
34
|
+
*/
|
|
35
|
+
export declare function applySemantics(element: HTMLElement, semantics?: Semantics): void;
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accessibility semantics → DOM.
|
|
3
|
+
*
|
|
4
|
+
* The engine derives a platform-neutral {@link Semantics} block (role, heading
|
|
5
|
+
* level, busy, and in later phases name/state/hidden/…) and ships it on
|
|
6
|
+
* `create` patches. This module is the DOM translation: it maps that block
|
|
7
|
+
* onto ARIA / native HTML.
|
|
8
|
+
*
|
|
9
|
+
* Guiding rule: **let native HTML do the work; never emit a redundant or
|
|
10
|
+
* misplaced role.** Most Hypen components render a semantic native element
|
|
11
|
+
* whose tag already conveys the correct role (`<button>`, `<a>`, `<p>`,
|
|
12
|
+
* `<img>`, `<input>`, `<select>`, `<textarea>`, `<h1>`–`<h6>`). Some render a
|
|
13
|
+
* wrapper around the real control (`Checkbox`/`Switch` are a `<label>` around a
|
|
14
|
+
* nested `<input>`), where putting the role on the wrapper would be flat wrong.
|
|
15
|
+
*
|
|
16
|
+
* So we only apply an explicit `role` when the host is a *generic* container
|
|
17
|
+
* (`<div>`/`<span>`) that conveys nothing on its own — which is exactly the
|
|
18
|
+
* handful of cases that need it (`Spinner`, `ProgressBar`). Everywhere else the
|
|
19
|
+
* native element is already correct, and the {@link Semantics} block still
|
|
20
|
+
* travels to the non-DOM renderers (Canvas shadow, iOS, Android) that lack
|
|
21
|
+
* native semantics.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* The implicit ARIA role each native host tag already conveys. An engine
|
|
25
|
+
* role equal to the implicit one is never applied (redundant-role smell:
|
|
26
|
+
* `role="button"` on `<button>`), but a *different* engine role is an
|
|
27
|
+
* intentional override and IS applied — `role="tab"` on a `<button>` host,
|
|
28
|
+
* `role="combobox"` on an `<input>` (the ARIA 1.2 combobox pattern).
|
|
29
|
+
*
|
|
30
|
+
* `LABEL` is special-cased below: it never takes a role at all, because
|
|
31
|
+
* Checkbox/Switch render a `<label>` *wrapper* whose role belongs to the
|
|
32
|
+
* nested `<input>` — putting it on the wrapper would be flat wrong.
|
|
33
|
+
*/
|
|
34
|
+
const IMPLICIT_ROLE = {
|
|
35
|
+
A: "link",
|
|
36
|
+
P: "paragraph",
|
|
37
|
+
IMG: "img",
|
|
38
|
+
INPUT: "textbox",
|
|
39
|
+
TEXTAREA: "textbox",
|
|
40
|
+
SELECT: "listbox",
|
|
41
|
+
BUTTON: "button",
|
|
42
|
+
H1: "heading",
|
|
43
|
+
H2: "heading",
|
|
44
|
+
H3: "heading",
|
|
45
|
+
H4: "heading",
|
|
46
|
+
H5: "heading",
|
|
47
|
+
H6: "heading",
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Attributes this module set on an element on its previous pass, so a
|
|
51
|
+
* re-apply (a reactive `setSemantics` patch) can clear exactly what it — and
|
|
52
|
+
* only it — owns. Tracking per element instead of blanket-removing every
|
|
53
|
+
* possible ARIA attribute keeps the `.aria()` escape hatch's attributes (and
|
|
54
|
+
* anything else outside this module) untouched.
|
|
55
|
+
*/
|
|
56
|
+
const appliedAttrs = new WeakMap();
|
|
57
|
+
/**
|
|
58
|
+
* Apply derived accessibility semantics to a DOM element.
|
|
59
|
+
*
|
|
60
|
+
* Called at create (first paint) and again on every `setSemantics` patch
|
|
61
|
+
* with the node's complete re-resolved block. Idempotent, and **clearing**:
|
|
62
|
+
* an attribute this module set on a previous pass that the new block no
|
|
63
|
+
* longer produces is removed (a name reverting from explicit to derived
|
|
64
|
+
* must drop its stale `aria-label`, a cleared `.expanded` its
|
|
65
|
+
* `aria-expanded`). No-op when `semantics` was never present, so
|
|
66
|
+
* non-semantic nodes pay nothing.
|
|
67
|
+
*/
|
|
68
|
+
export function applySemantics(element, semantics) {
|
|
69
|
+
if (!semantics && !appliedAttrs.has(element))
|
|
70
|
+
return;
|
|
71
|
+
// Everything this pass wants set, collected first so the diff against the
|
|
72
|
+
// previous pass is a plain list comparison.
|
|
73
|
+
const next = [];
|
|
74
|
+
if (semantics) {
|
|
75
|
+
if (semantics.hidden) {
|
|
76
|
+
// Decorative: remove from the accessibility tree entirely. Nothing
|
|
77
|
+
// else applies once hidden.
|
|
78
|
+
next.push(["aria-hidden", "true"]);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// tagName is uppercase in real DOM; normalize so the lookup is robust
|
|
82
|
+
// against test doubles that preserve the as-created case.
|
|
83
|
+
const tag = element.tagName?.toUpperCase();
|
|
84
|
+
if (semantics.role &&
|
|
85
|
+
tag !== "LABEL" &&
|
|
86
|
+
IMPLICIT_ROLE[tag] !== semantics.role) {
|
|
87
|
+
// Applied when the host conveys nothing (div/span) or when the
|
|
88
|
+
// engine role intentionally overrides the tag's implicit role
|
|
89
|
+
// (`role="tab"` on a <button>). Skipped when redundant, and always
|
|
90
|
+
// skipped on <label> wrappers (the role belongs to the nested input).
|
|
91
|
+
next.push(["role", semantics.role]);
|
|
92
|
+
}
|
|
93
|
+
// An explicit author label overrides visible content, so it is applied
|
|
94
|
+
// as aria-label even on native elements. A *derived* name is
|
|
95
|
+
// deliberately not applied — the browser already exposes it from the
|
|
96
|
+
// visible content.
|
|
97
|
+
if (semantics.nameExplicit && semantics.name) {
|
|
98
|
+
next.push(["aria-label", semantics.name]);
|
|
99
|
+
}
|
|
100
|
+
if (semantics.description) {
|
|
101
|
+
next.push(["aria-description", semantics.description]);
|
|
102
|
+
}
|
|
103
|
+
// Self-state relationship attributes.
|
|
104
|
+
if (semantics.expanded !== undefined) {
|
|
105
|
+
next.push(["aria-expanded", String(semantics.expanded)]);
|
|
106
|
+
}
|
|
107
|
+
if (semantics.pressed !== undefined) {
|
|
108
|
+
next.push(["aria-pressed", String(semantics.pressed)]);
|
|
109
|
+
}
|
|
110
|
+
if (semantics.selected !== undefined) {
|
|
111
|
+
next.push(["aria-selected", String(semantics.selected)]);
|
|
112
|
+
}
|
|
113
|
+
if (semantics.current) {
|
|
114
|
+
next.push(["aria-current", semantics.current]);
|
|
115
|
+
}
|
|
116
|
+
if (semantics.checked !== undefined) {
|
|
117
|
+
next.push(["aria-checked", String(semantics.checked)]);
|
|
118
|
+
}
|
|
119
|
+
if (semantics.invalid !== undefined) {
|
|
120
|
+
// Reactive form validity — kept live via `setSemantics` re-emits;
|
|
121
|
+
// clearing (block drops the field) removes the attribute below.
|
|
122
|
+
next.push(["aria-invalid", String(semantics.invalid)]);
|
|
123
|
+
}
|
|
124
|
+
// Cross-node relationships by author-supplied id. DOM-only /
|
|
125
|
+
// web-leaning: these id-reference relationships have no equivalent in
|
|
126
|
+
// the string-hint native accessibility APIs, so they do not travel to
|
|
127
|
+
// Canvas / iOS / Android. See the guide's "Platform support" section
|
|
128
|
+
// (hypen-docs/content/docs/guide/accessibility.mdx).
|
|
129
|
+
if (semantics.id) {
|
|
130
|
+
// The anchor the references below resolve against — a real DOM id.
|
|
131
|
+
next.push(["id", semantics.id]);
|
|
132
|
+
}
|
|
133
|
+
if (semantics.dir) {
|
|
134
|
+
// Base text direction → the native HTML dir attribute (not ARIA).
|
|
135
|
+
// Managed like `id`: cleared when a later block drops it.
|
|
136
|
+
next.push(["dir", semantics.dir]);
|
|
137
|
+
}
|
|
138
|
+
if (semantics.controls) {
|
|
139
|
+
next.push(["aria-controls", semantics.controls]);
|
|
140
|
+
}
|
|
141
|
+
if (semantics.describedby) {
|
|
142
|
+
next.push(["aria-describedby", semantics.describedby]);
|
|
143
|
+
}
|
|
144
|
+
if (semantics.labelledby) {
|
|
145
|
+
next.push(["aria-labelledby", semantics.labelledby]);
|
|
146
|
+
}
|
|
147
|
+
if (semantics.activeDescendant) {
|
|
148
|
+
// Reactive roving-focus pointer — arrives initially on `create` and
|
|
149
|
+
// stays live via `setSemantics` re-emits as the bound state changes.
|
|
150
|
+
next.push(["aria-activedescendant", semantics.activeDescendant]);
|
|
151
|
+
}
|
|
152
|
+
if (semantics.owns) {
|
|
153
|
+
next.push(["aria-owns", semantics.owns]);
|
|
154
|
+
}
|
|
155
|
+
if (semantics.busy) {
|
|
156
|
+
next.push(["aria-busy", "true"]);
|
|
157
|
+
}
|
|
158
|
+
if (semantics.live) {
|
|
159
|
+
// Live-region politeness — engine-validated ("polite" | "assertive").
|
|
160
|
+
next.push(["aria-live", semantics.live]);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Clear what the previous pass set but this one doesn't.
|
|
165
|
+
const previous = appliedAttrs.get(element);
|
|
166
|
+
if (previous) {
|
|
167
|
+
const keep = new Set(next.map(([name]) => name));
|
|
168
|
+
for (const name of previous) {
|
|
169
|
+
if (!keep.has(name)) {
|
|
170
|
+
element.removeAttribute(name);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
for (const [name, value] of next) {
|
|
175
|
+
element.setAttribute(name, value);
|
|
176
|
+
}
|
|
177
|
+
if (next.length > 0) {
|
|
178
|
+
appliedAttrs.set(element, next.map(([name]) => name));
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
appliedAttrs.delete(element);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=semantics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantics.js","sourceRoot":"","sources":["../../src/dom/semantics.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hypen-space/web",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "Hypen web renderers - DOM and Canvas rendering for browsers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@chenglou/pretext": "^0.0.3",
|
|
46
|
-
"@hypen-space/core": "^0.5.
|
|
46
|
+
"@hypen-space/core": "^0.5.3",
|
|
47
47
|
"taffy-layout": "^2.0.3"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
package/src/canvas/QUICKSTART.md
CHANGED
|
@@ -255,9 +255,8 @@ const renderer = new CanvasRenderer(canvas, engine, {
|
|
|
255
255
|
backgroundColor: "#ffffff", // Canvas background
|
|
256
256
|
|
|
257
257
|
// Features
|
|
258
|
-
enableAccessibility: true, // Screen
|
|
258
|
+
enableAccessibility: true, // Screen readers + Tab focus + text editing
|
|
259
259
|
enableHitTesting: true, // Mouse events
|
|
260
|
-
enableInputOverlay: true, // Text input support
|
|
261
260
|
|
|
262
261
|
// Debug
|
|
263
262
|
showLayoutBounds: false, // Show red boxes around elements
|
|
@@ -373,11 +372,12 @@ const renderer = new CanvasRenderer(canvas, engine, {
|
|
|
373
372
|
|
|
374
373
|
### Text Input Not Working
|
|
375
374
|
|
|
376
|
-
|
|
375
|
+
Text editing runs through the accessibility mirror (canvas fallback
|
|
376
|
+
content), so `enableAccessibility` must be true (the default):
|
|
377
377
|
|
|
378
378
|
```typescript
|
|
379
379
|
const renderer = new CanvasRenderer(canvas, engine, {
|
|
380
|
-
|
|
380
|
+
enableAccessibility: true,
|
|
381
381
|
});
|
|
382
382
|
```
|
|
383
383
|
|
package/src/canvas/README.md
CHANGED
|
@@ -144,35 +144,61 @@ Handles text measurement and rendering:
|
|
|
144
144
|
- **Text Alignment**: left, center, right, top, middle, bottom
|
|
145
145
|
- **Caching**: Text metrics are cached for performance
|
|
146
146
|
|
|
147
|
-
### 5.
|
|
148
|
-
|
|
149
|
-
|
|
147
|
+
### 5. Native Text Editing (`editing.ts`)
|
|
148
|
+
|
|
149
|
+
Text, caret, and selection inside `Input`/`Textarea` are painted **on the
|
|
150
|
+
canvas** — there is no visible DOM overlay. The browser does the actual
|
|
151
|
+
editing (typing, caret movement, word-jumps, select-all, clipboard, undo,
|
|
152
|
+
IME composition) in a single hidden **proxy textarea** positioned at the
|
|
153
|
+
caret (the Monaco/xterm.js approach); the `TextEditController` reads
|
|
154
|
+
`value`/`selectionStart`/`selectionEnd` after each event and the canvas
|
|
155
|
+
paints the result. Focus and accessibility stay on the node's mirror
|
|
156
|
+
element (below) — browsers won't run text editing on unrendered fallback
|
|
157
|
+
content, which is why the keystroke stream needs the proxy. Positioning the
|
|
158
|
+
proxy at the caret also puts the IME candidate window next to the painted
|
|
159
|
+
text.
|
|
160
|
+
|
|
161
|
+
**Editing visuals (painted in `paint.ts#paintInput`):**
|
|
162
|
+
- Selection highlight and blinking caret via shared `text-geometry.ts` math
|
|
163
|
+
- IME composition range underlined (dashed)
|
|
164
|
+
- Single-line inputs pan horizontally (`scrollX`) to keep the caret visible
|
|
165
|
+
- Click/drag on the canvas maps point → character offset → `setSelectionRange`
|
|
166
|
+
|
|
167
|
+
Two-way binding dispatches `__hypen_bind {path, value}` on input (suppressed
|
|
168
|
+
during IME composition; flushed at `compositionend`).
|
|
169
|
+
|
|
170
|
+
### 6. Accessibility & Focus (`accessibility.ts`, `focus.ts`)
|
|
171
|
+
|
|
172
|
+
A live DOM mirror of the virtual tree is rendered as a **transparent
|
|
173
|
+
positioned overlay** above the canvas (the Flutter-web approach), with every
|
|
174
|
+
element absolutely positioned at its painted bounds and `pointer-events:
|
|
175
|
+
none` so the canvas keeps all pointer interaction.
|
|
176
|
+
|
|
177
|
+
Canvas *fallback content* was evaluated first and rejected on evidence:
|
|
178
|
+
Chromium exposes fallback elements to the accessibility tree (names, roles,
|
|
179
|
+
focus, Tab order all work) but gives them **zero geometry** — and screen
|
|
180
|
+
reader browse modes (VoiceOver cursor, rotor, touch exploration) are
|
|
181
|
+
geometry-driven, so they skip boundless elements entirely.
|
|
150
182
|
|
|
151
183
|
**Strategy:**
|
|
152
|
-
1.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
2. Use semantic HTML (button, input, etc.)
|
|
171
|
-
3. Update shadow DOM when patches are applied
|
|
172
|
-
4. Support keyboard navigation
|
|
173
|
-
5. ARIA labels and roles
|
|
174
|
-
|
|
175
|
-
This makes the canvas renderer fully accessible without impacting visual rendering.
|
|
184
|
+
1. Mirror elements use semantic HTML (button, input, h1-h6, ...) driven by
|
|
185
|
+
the engine-derived `Semantics` block, invisibly rendered (transparent
|
|
186
|
+
text/background; placeholders and selection suppressed via a shared
|
|
187
|
+
stylesheet) so AT gets real boxes and native focus rings land exactly
|
|
188
|
+
over the painted controls
|
|
189
|
+
2. The mirror is synced **incrementally** from the patch stream
|
|
190
|
+
(create/insert/move/remove/detach/attach) — element identity survives
|
|
191
|
+
re-renders and router navigation, so AT focus/virtual-cursor position
|
|
192
|
+
is never destroyed by an update; element positions are refreshed after
|
|
193
|
+
every canvas render
|
|
194
|
+
3. Real DOM focus on mirror elements is the **single source of truth** for
|
|
195
|
+
focus: Tab/Shift+Tab work natively, `focusin`/`focusout` drive
|
|
196
|
+
`node.focused` and the painted focus ring, and the canvas hit-test path
|
|
197
|
+
funnels into the same place by focusing the node's mirror element
|
|
198
|
+
4. Enter/Space on a mirror `<button>` (or AT activation) dispatches the
|
|
199
|
+
node's action — identical payload to a canvas click
|
|
200
|
+
5. The `<canvas>` itself is `aria-hidden` — the overlay carries all
|
|
201
|
+
semantics
|
|
176
202
|
|
|
177
203
|
## Supported Components
|
|
178
204
|
|
|
@@ -203,9 +229,9 @@ const renderer = new CanvasRenderer(canvas, engine, {
|
|
|
203
229
|
backgroundColor: "#ffffff", // Canvas background
|
|
204
230
|
|
|
205
231
|
// Features
|
|
206
|
-
enableAccessibility: true, //
|
|
232
|
+
enableAccessibility: true, // Fallback-content mirror: screen readers,
|
|
233
|
+
// Tab focus, and text-input editing
|
|
207
234
|
enableHitTesting: true, // Mouse event handling
|
|
208
|
-
enableInputOverlay: true, // DOM overlays for text input
|
|
209
235
|
|
|
210
236
|
// Performance (future)
|
|
211
237
|
enableDirtyRects: false, // Only redraw changed regions
|