You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Several UI surfaces build aria-labels (and other accessible names) directly from entity type / display values, which are not always friendly when read verbatim by a screen reader:
Sentinels with punctuation — an untyped edge/vertex falls back to «No Type» (LABELS.MISSING_TYPE, using guillemet characters). An aria-label like "«No Type» edge" causes VoiceOver to announce the literal quotation-mark characters.
IRIs / URIs — in SPARQL/RDF, type and predicate values are often full IRIs (e.g. http://www.w3.org/2000/01/rdf-schema#label), which read aloud character-by-character are unintelligible.
Raw identifiers — camelCase / snake_case type names read awkwardly.
This surfaced while adding an aria-label to the edge details connector preview (EdgeDetail.tsx → EdgeLinePreview), but it is not specific to that component — it is a general pattern anywhere we interpolate a type/display value into an accessible name.
Scope (investigation + fix)
Audit where entity type/display values feed aria-label, alt, title, or role="img" names (e.g. EdgeLinePreview/EdgeDetail, VertexSymbol, icon previews, rows).
Decide a consistent approach for producing a human-friendly accessible name from a type/display value: strip/replace the «No Type» sentinel with plain wording, prefer the localName over a full IRI, and handle empty/degenerate cases.
Consider a small shared helper (e.g. accessibleTypeName(...)) so every surface derives names the same way rather than interpolating raw values.
Notes
Deferred from the edge arrow/line preview work (#1985). Left the EdgeDetail«No Type» edge case as-is pending this broader decision.
Important
Internal only — this issue is maintained by the core team and is not accepting external contributions.
Problem
Several UI surfaces build
aria-labels (and other accessible names) directly from entity type / display values, which are not always friendly when read verbatim by a screen reader:«No Type»(LABELS.MISSING_TYPE, using guillemet characters). Anaria-labellike"«No Type» edge"causes VoiceOver to announce the literal quotation-mark characters.http://www.w3.org/2000/01/rdf-schema#label), which read aloud character-by-character are unintelligible.This surfaced while adding an
aria-labelto the edge details connector preview (EdgeDetail.tsx→EdgeLinePreview), but it is not specific to that component — it is a general pattern anywhere we interpolate a type/display value into an accessible name.Scope (investigation + fix)
aria-label,alt,title, orrole="img"names (e.g.EdgeLinePreview/EdgeDetail,VertexSymbol, icon previews, rows).«No Type»sentinel with plain wording, prefer the localName over a full IRI, and handle empty/degenerate cases.accessibleTypeName(...)) so every surface derives names the same way rather than interpolating raw values.Notes
Deferred from the edge arrow/line preview work (#1985). Left the
EdgeDetail«No Type» edgecase as-is pending this broader decision.Important
Internal only — this issue is maintained by the core team and is not accepting external contributions.