-
Notifications
You must be signed in to change notification settings - Fork 0
fix(reliability): bound accessibility string metadata before normalization #229
Copy link
Copy link
Closed
Labels
area: accessibilityAccessibility and assistive-technology supportAccessibility and assistive-technology supportarea: authAuthentication, authorization, identity, or tenant isolationAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainCI, GitHub Actions, checks, release, or supply chainarea: securitySecurity boundary, hardening, or vulnerability preventionSecurity boundary, hardening, or vulnerability preventionpriority: mediumNormal-priority or P2 workNormal-priority or P2 workstatus: triagedOpen issue has an organization taxonomy assignmentOpen issue has an organization taxonomy assignmenttype: bugDefect or incorrect behaviorDefect or incorrect behavior
Description
Activity
Metadata
Metadata
Assignees
Labels
area: accessibilityAccessibility and assistive-technology supportAccessibility and assistive-technology supportarea: authAuthentication, authorization, identity, or tenant isolationAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainCI, GitHub Actions, checks, release, or supply chainarea: securitySecurity boundary, hardening, or vulnerability preventionSecurity boundary, hardening, or vulnerability preventionpriority: mediumNormal-priority or P2 workNormal-priority or P2 workstatus: triagedOpen issue has an organization taxonomy assignmentOpen issue has an organization taxonomy assignmenttype: bugDefect or incorrect behaviorDefect or incorrect behavior
Buyer-visible reliability boundary
Protected
main@3b38ead2d00f44eb578d0689087b9293b3dabe1eexposes host-supplied accessibility strings that cross an untyped/deserialized runtime boundary before they are normalized and reflected into editor/ARIA attributes. The historical defect allowed non-string values to leak accidental native string-operation failures and allowed arbitrarily large metadata to force normalization plus DOM attribute materialization.This is an Inkspan-owned local editor/accessibility resource boundary. It does not validate host DOM ownership, localization policy, authentication, transport, tenancy, persistence, credentials, model/provider behavior, or durable audit.
Canonical owner and implemented contract
Draft PR #230 is now the sole active writer for
src/components/editorAccessibility.tsand its focused metadata/runtime tests. Do not create a separate main-based writer for this issue.At exact #230 head
59d82f8b65cfad5230fa9e11afb97867293a43f5, all host-supplied accessibility strings handled by the helper—including requireddefaultLabelas well as optionalplaceholder,languageTag,ariaLabel,ariaLabelledBy,ariaDescribedBy, andariaErrorMessage—are bounded to 65,536 UTF-16 code units and non-string runtime values are rejected through a stable payload-redactedRangeErrorbefore normalization. Optional strings preserve existing trim/blank-omission semantics; requireddefaultLabelpreserves its existing spelling semantics rather than being silently normalized.Representative resource-boundary RED lineage is
8b3d7d9959d0c01c63aa2da1cad5a7756ea31985; required fallback-label coverage was added at test-onlyf6aa305d62f9f6715a4730eb77f4ab8c07418248and immediately followed by the narrow implementation. Exact-current #230 repository workflows are terminal success: CI32322070195, Security Scan32322070146, and SAST Semgrep32322070224. Predecessor evidence does not transfer.Acceptance
Integration boundary
Keep #230 Draft/unmerged while #118 freezes protected main for
v0.6.0operational acceptance and while qualifying independent approval plus every then-live merge/review/governance gate remain incomplete. Never transfer predecessor CI/review evidence or create a competing writer for the same source.