Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-119057

a11y: Qt lacks possibility to set many a11y attributes/properties

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P3: Somewhat important
    • 6.8.0 FF
    • dev
    • None
    • Debian testing, qtbase dev as of 68369237bfefc81410a0d8d7389ed5e0fba0b421
    • Linux/X11
    • fb5ffe862 (dev), 2d3f49d79 (dev), bd0a6e830 (dev)

    Description

      With the QAccessible*Interface classes, Qt provides a way to expose important information on the (platform) accessibility layer which is consumed by assistive tooling like screen readers.

      However, besides the information that can already be provided using these interfaces, a lot of information can currently not be made available when using Qt.

      Common accessibility APIs (like ARIA, AT-SPI2 on Linux, IAccessible2 and UIA on Windows and NSAccessibility on macOS) have a concept of object properties/attributes and only a subset of these can be properly reported/exposed via the the existing Qt accessibility API.

      Looking into the Core Accessibility API Mappings specification ( https://www.w3.org/TR/core-aam-1.2/ ) can give a first impression of various things that are currently not possible via the Qt APIs.

      I'd therefore suggest to extend the Qt API. One possibility that seems reasonable to me would be adding a way to directly report more object attributes/properties and mapping those to the corresponding platform a11y equivalent.

      I plan to come up with a potential implementation in Gerrit.

       

      One example out of many is reporting the heading level (s. e.g. https://www.w3.org/TR/core-aam-1.2/#ariaLevelHeading for the suggested mapping of the corresponding ARIA attribute), which can be seen with the qt6-based variant of LibreOffice:

      1) start the Orca screen reader

      2) open attached sample document "heading.odt" in the gtk3-based LibreOffice variant

      3) move the cursor between the paragraphs. -> Whenever the cursor gets moved to a heading, Orca will speak the text of the heading and the heading level, e.g. "Heading 4, heading level 4" in the sample document

      4) restart LibreOffice with the qt6-based LibreOffice variant and move the cursor as described above

      Actual result: Only the text and the fact that this is a heading is announced, but not what level, e.g.: "Heading 4, heading". Therefore the user lacks important information about the document structure.

       

      As far as I can see, there no Qt API that LibreOffice could use to make that information available.

      Attachments

        1. heading.odt
          12 kB
          Michael Weghorn
        For Gerrit Dashboard: QTBUG-119057
        # Subject Branch Project Status CR V

        Activity

          People

            qt.team.quick.subscriptions Qt Quick and Widgets Team
            michaelweghorn Michael Weghorn
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes