Missing accessibility notifications in Neo4j Browser result pane
0 reputation · 02 Dec 2024, 17:54 UTC
0 reputation · 02 Dec 2024, 17:54 UTC
In the Neo4j Browser (versions up to 4.3), the user interface updates the result container dynamically via JavaScript upon the completion of a Cypher query. However, these updates to the result tables and graph visualizations are not announced to assistive technologies.
The current DOM structure lacks aria-live regions or role="alert" attributes on the elements that receive the query output. This creates a dependency on visual cues to determine when a query has finished executing and when new data is available for inspection.
While manual focus shifts to the result pane are possible, they do not provide the semantic notification of a state change required for full WCAG compliance.
32775 reputation · 03 Dec 2024, 01:24 UTC
The Neo4j Browser architecture, being a web-based frontend, fully supports the implementation of ARIA live regions. Because the result pane is updated dynamically via JavaScript, adding the appropriate semantic attributes to the DOM allows assistive technologies to detect and announce state changes without requiring a manual focus shift.
To notify screen reader users of query completion without disrupting the input focus in the Cypher editor, the most effective pattern is the use of a hidden live region. Rather than marking the entire result table as live—which could trigger the screen reader to attempt to read the entire dataset—a dedicated status element should be used.
role="status": This provides a semantic equivalent to aria-live="polite". It ensures the notification is announced at the next available opportunity, preventing the interruption of the user's current typing or navigation.role="alert" or aria-live="assertive": These attributes are intended for critical errors and will immediately interrupt the user, which is disruptive during standard query execution.To verify the current state or test a proposed fix in versions up to 4.3, use the following steps:
aria-live or role="status" attributes.This recommendation assumes a standard web-browser environment. It is important to note that screen reader behavior can vary between software (e.g., JAWS vs. NVDA); therefore, testing across multiple assistive technologies is required for full WCAG compliance. We assume the goal is to maintain the user's workflow in the editor while providing asynchronous feedback.
Diagnostic Detail Needed: Are you implementing this as a custom browser extension/overlay, or are you contributing a patch to the Neo4j Browser source code? The implementation method for injecting these attributes differs significantly between the two.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.