Description
Steps to reproduce:
- Go to the notification settings of your profile, in the Custom Filters section.
- Add a few watched pages so that the Live Data has several rows.
- Navigate the "Is enabled?" column with a screen reader, or inspect the switches.
Expected result:
Each switch is announced with the row it belongs to, for instance "Toggle Sandbox.WebHome, Is enabled?".
Actual result:
Every switch of the column is announced "Is enabled?", with nothing telling the rows apart.
This is not specific to the toggle displayer. The table layout renders every cell as a plain <td>, without a <th scope="row"> nor any other per-entry label, so no row control can get its context from the table itself. The actions displayer has the same problem, where every row offers a button announced only "Delete", and so does the entry selector checkbox.
A fix likely means Live Data exposing a label for an entry, built from the entry descriptor or from a designated main property, that the row level controls can append to their own accessible name.
The toggle displayer got the column name as an accessible name in XWIKI-22197, which is an improvement over having none at all but does not solve this.