Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-81015

Table: Header announcing twice to the screen reader user and labels are verbose

    XMLWordPrintable

Description

    Issue Summary

    When the VoiceOver users navigate the table using CTRL + Option + Left or Right arrow keys, the VoiceOver read the header twice of the table unnecessarily and the labels are too much verbose.

    Steps to Reproduce

    1. In the page add a table, fill up the details for the table header and other cells and publish the page.
    2. Activate the VoiceOver.
    3. Interact with any table on the page in the read mode using Ctrl-Opt-Right- and Left-Arrow to navigate across table cells.
    4. Observe the table headers content announcing twice with the instructions as well.

    Screenshot

    Screen recording

    Screen Recording 2022-11-01 at 8.37.37 PM.mov

    Actual Behaviour

    On the confluence page for the added table, the content/text present in the table headers is announced twice to the screen reader user with the instructions as well.

    Additionally, the labels for the headers are verbose and announced every time to the screen reader users leading to a frustrating experience.

    Hence it would create a confusing experience for the assistive technology user to understand the exact content present in the table content.

    Expected Result

    The table headers should not be announced redundantly to the screen reader users while navigating through table contents in forms or read mode of screen readers.

    Apply following fixes in the code to resolve this issues.

    • The <th> elements should not be responsible for sort actions. Instead a native HTML <button> elements should be used within <th> elements which should be responsible for sorting functionality.
    • Remove "aria-label", "tabindex", "aria-sort=none", etc attributes from all <th> elements.
    • Provide sortable table column headers <th> elements with the aria-sort attribute and ensure its value is either “ascending” or “descending” depending on sort state. And also make sure to update the value as per user interactions.
    • Remove aria-live & aria-relevant attributes from <tbody> element.

    As a best practice apply following additional fixes.

    • Provide sort Information in a non-visual aria-live container & update its contents when table is sorted.
      For Example: "Table sorted by Last Name column in descending order" or "Table sorted by Last Name column in ascending order".
    • Add some visual cues such as "up chevron icon ▲" to convey that ascending sort is applied & "down chevron icon ▼" to convey that descending sort is applied. And diamond shaped icon (e.g. ♢) to the header which is not currently sorted, so people with visual impairments can easily distinguish them.
    • Provide a visually hidden instruction to provide sort hint to users.
      For Example: "use column header buttons to sort".

    Refer to following documents for detailed Information & live examples of sortable tables

    https://hello.atlassian.net/wiki/spaces/A11Y/pages/1458768766/Sortable+Tables 

    https://codepen.io/atlassian-a11y/pen/mdBmzLJ/fef555ed01190b391c99fc26d896cec5 

    https://adrianroselli.com/2021/04/sortable-table-columns.html 

    Workaround

    Currently, there is no known workaround for this behavior. A workaround will be added here when available

    Attachments

      1. image-2023-05-11-14-09-43-028.png
        image-2023-05-11-14-09-43-028.png
        19 kB
      2. QA CONFSERVER-81015.mov
        25.09 MB
      3. QA CONFSERVER-81015.png
        QA CONFSERVER-81015.png
        752 kB
      4. Screen Recording 2022-11-01 at 8.37.37 PM.mov
        17.56 MB
      5. Screenshot 2022-11-01 at 8.38.55 PM.png
        Screenshot 2022-11-01 at 8.38.55 PM.png
        629 kB

      Issue Links

        Activity

          People

            34549e788464 Oleksandr Mazepa
            4cbd728b4726 Rinku Kumar
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: