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

iOS A11Y VoiceOver: QAccessible::EditableText not implemented as "TextField" and value is missing last character

    XMLWordPrintable

Details

    • iOS/tvOS/watchOS
    • 08cd5580df382af5ddfe1c0c44bc9dd68e4cd1e7 (qt/qtbase/dev) 98b9dcb993dfc595e6a216be47a5a67258e5b79b (qt/qtbase/6.1) d2adbb338c628d9b9b8eb5a9adb9386b362bde37 (qt/qtbase/5.12) 743f4c7ca3ec800bc29c44c6963d34e14e5fb324 (qt/tqtc-qtbase/5.15)

    Description

      Context

      Items on iOS Phone with VoiceOver activated should be shown as dedicated elements a blind person can navigate through. It has to fulfill requirements of WCAG 2.0 / WCAG2ICT

      Expectations

      • TextInput items should be reported as "[Name], TextField"
      • TextInput is role "EditableText" by default.

      Observation

      • Only the text in Accessible.name is reported, but not the postifx ", TextField". This was marked as "Serious impact" in an ADA audit we had for our iOS app.
      • Voice over provided "Name, Ba, Description" for the second. The last character of the text is missing

       Code

      import QtQuick 2.15
      import QtQuick.Window 2.15
      import QtQuick.Controls 2.15
      
      Window {
          visible: true
      
          Column {
      
              TextInput {
                  text: "Bar"
                  Accessible.name: "Name"
              }
      
              TextInput {
                  text: "Bar"
                  Accessible.name: "Name"
                  Accessible.description: "Description"
                  Accessible.role: Accessible.EditableText
              }
      
          }
      }
      

      This is a native implementation in SwiftUI for behaviour comparison. See attached video for app in action.

      import SwiftUI
      
      struct ContentView: View {
          @State private var text: String = "";
          var body: some View {
              VStack {
                  Text("Title").accessibility(addTraits:[.isHeader])
                  TextField("Demo", text: $text)
                  TextField("Demo", text: $text).accessibility(hint: Text("Description"))
              }
          }
      }
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            frederik Frederik Gladhorn
            michl86 Michael Piendl
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: