• Mohamed Mansour's avatar
    TableView: Re-implement accessibility support for Screen Readers · ceb2bcc6
    Mohamed Mansour authored
    Currently TableView constructs the virtual accessibility views by
    clearing and creating the entire accessibility tree for every
    action (Creating, Adding, Removing, Sorting, Adding Columns, etc).
    This introduces a few major problems with screen readers.
    
    For example in UIA supported readers, the TableView is not accessible
    at all, when the virtual accessibility views are being destroyed and
    created, the narrator looses its context causing the focus to shift to
    the parent, causing a flicker like effect and the user cannot announce
    any cells. For IAccessible2 supported readers, for low end devices, it
    takes time to construct all the virtual accessibility views causing
    some cells to not narrate.
    
    So instead of destroying and re-creating all the virtual accessibility
    views every time there is a change to the table model or the sorting,
    it will add, remove and re-arrange virtual accessibility views on an
    individual basis.
    
    and other tables in Chromium's UI.
    
    Bug: 1078623
    Change-Id: Ie2de53b4460fed87843b6ce81e90a24194b04c2a
    AX-Relnotes: UIA screen readers, such as Narrator, announce all information in the Task Manager
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2379091
    Commit-Queue: Mohamed Mansour <mmansour@microsoft.com>
    Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
    Reviewed-by: default avatarScott Violet <sky@chromium.org>
    Reviewed-by: default avatarNektarios Paisios <nektar@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#813489}
    ceb2bcc6
view_accessibility.cc 12.1 KB