Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Windows][a11y] Pressing the "down arrow" does not move the focus and read the Text Widget #109804

Open
cbracken opened this issue Aug 18, 2022 · 12 comments
Labels
a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) a: desktop Running on desktop customer: google Various Google teams P2 Important issues not at the top of the work list platform-windows Building on or for Windows specifically team-desktop Owned by Desktop platforms team triaged-desktop Triaged by Desktop platforms team

Comments

@cbracken
Copy link
Member

cbracken commented Aug 18, 2022

Internal: b/241886719

Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        // We also apply a custom font, ProductSans.
        title: Text(widget.title),
      ),
      body: Column(
        children: [
          Expanded(
            child: ListView(
              children: [
                Text(
                  'This 0',
                ),
                Text(
                  'This 1',
                ),
                Text(
                  'This 2',
                ),
                Text(
                  'This 3',
                ),
              ],
            ),
          ),
        ],
      ),
    );

Repro steps:

  1. Run NVDA or any other screen reader on the windows machine.
  2. Press tab to move the focus.

Actual: Not moving the focus to text and not reading it out.
Expected: Should move the focus to the text and read out loud.

@cbracken cbracken added a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) platform-windows Building on or for Windows specifically customer: google Various Google teams P2 labels Aug 18, 2022
@cbracken cbracken changed the title [Windows] [Windows] Pressing the TAB is not moving the focusing and reading the Text Widget Aug 18, 2022
@cbracken cbracken added P1 High-priority issues at the top of the work list and removed P1 High-priority issues at the top of the work list labels Aug 18, 2022
@cbracken
Copy link
Member Author

cbracken commented Aug 23, 2022

This is queued up next after #109802.

@Hixie
Copy link
Contributor

Hixie commented Sep 7, 2022

@yaakovschectman informs me this is currently blocked on them getting some information from an a11y expert.

@chunhtai
Copy link
Contributor

chunhtai commented Sep 7, 2022

we have shortcut that handles tab on the framework side, we should first make sure it does not swallow the key press.
Is this a a keyboard focus or a11y focus? If we really can't get it to work, is it possible to send a11y focus event to the next item when tab is pressed?

@yaakovschectman
Copy link
Contributor

In reality, we have found TAB works in a manner consistent with other applications, but keyboard commands that should allow navigation when using a screen reader (e.g. INS+UP/DOWN for NVDA) do not. Additionally, I have found that when using a screen reader, the screen reader processes keystrokes before Flutter does, so issues of Flutter swallowing key presses seem implausible.

@cbracken
Copy link
Member Author

cbracken commented Sep 7, 2022

Depending on how soon you expect to be able to talk to the person we discussed on Chromium, one other option is that NVDA is open source (appears to be written in python) so it may be possible to instrument it to get a better picture of what's going on.

@cbracken cbracken changed the title [Windows] Pressing the TAB is not moving the focusing and reading the Text Widget [Windows][a11y] Pressing the TAB is not moving the focusing and reading the Text Widget Sep 13, 2022
@darshankawar darshankawar added the a: desktop Running on desktop label Sep 21, 2022
@Hixie
Copy link
Contributor

Hixie commented Sep 21, 2022

update: @yaakovschectman informs me that they are talking with someone from Chrome about this.

@Hixie Hixie changed the title [Windows][a11y] Pressing the TAB is not moving the focusing and reading the Text Widget [Windows][a11y] Pressing Tab does not move the focus and read the Text Widget Oct 4, 2022
@cbracken cbracken assigned cbracken and unassigned yaakovschectman Oct 5, 2022
@cbracken
Copy link
Member Author

cbracken commented Oct 5, 2022

Swapping assignment to myself while I attempt to clarify this bug and locate some win a11y experts who can help define the expected behaviour here.

The current state is:

  • NVDA documents that the Tab key reads the next focusable item such as (e.g. links, buttons). Text widgets are not focusable items and therefore our behaviour with regards to the Tab key is, I believe, working as intended.
  • NVDA documents that the down arrow key reads the next item. When I reconstruct the same example as HTML in a web browser, the down arrow does read each item in turn. In Flutter, it does not. Therefore, I think there is a bug to be resolved here. I'm following up with the internal filer on that side of things.

@chunhtai
Copy link
Contributor

chunhtai commented Oct 5, 2022

I am seeing a weird reporting from the customer see https://buganizer.corp.google.com/issues/245911732#comment18

In the workaround i asked customer to exclude the semantic of a link widget. so the semantics tree should not have the link widget included. The customer reported they can still use tab to traverse to the link widget that got excluded. It seemed to me that the tab is not using the semantics tree to find the next focus, it probably go through a different system, which is likely going through the flutter shortcut system

@gspencergoog gspencergoog changed the title [Windows][a11y] Pressing Tab does not move the focus and read the Text Widget [Windows][a11y] Pressing the "down arrow" does not move the focus and read the Text Widget Oct 6, 2022
@jacobsimionato
Copy link
Contributor

Just wondering if there have been any updates on this issue recently? I'm eager to unblock our Google customer!

@cbracken
Copy link
Member Author

cbracken commented Nov 1, 2022

We're still investigating what's going on with the arrow key navigation. @yaakovschectman has confirmed that NVDA is getting the keypress before the Flutter embedder is. Given NVDA is open source, I'm having a look at whether I can debug from the NVDA side to reveal what's going on here.

@cbracken cbracken added P1 High-priority issues at the top of the work list and removed P2 labels Nov 29, 2022
@yaakovschectman
Copy link
Contributor

I spoke with somebody from NVDA, and it turns out that the functionality of the arrow keys is not modified by NVDA screen reader. The arrow keys are handled by an app as they normally are, and the app may fire an event in response. NVDA object navigation can be used to navigate through non-focusable elements, which sounds like what this issue regards.

@cbracken cbracken removed their assignment Feb 17, 2023
@flutter-triage-bot flutter-triage-bot bot added team-desktop Owned by Desktop platforms team triaged-desktop Triaged by Desktop platforms team labels Jul 7, 2023
@flutter-triage-bot flutter-triage-bot bot removed the triaged-desktop Triaged by Desktop platforms team label Jul 22, 2023
@flutter-triage-bot
Copy link

This issue is marked P1 but has had no recent status updates.

The P1 label indicates high-priority issues that are at the top of the work list. This is the highest priority level a bug can have if it isn't affecting a top-tier customer or breaking the build. Bugs marked P1 are generally actively being worked on unless the assignee is dealing with a P0 bug (or another P1 bug). Issues at this level should be resolved in a matter of months and should have monthly updates on GitHub.

Please consider where this bug really falls in our current priorities, and label it or assign it accordingly. This allows people to have a clearer picture of what work is actually planned. Thanks!

@gspencergoog gspencergoog added P2 Important issues not at the top of the work list triaged-desktop Triaged by Desktop platforms team and removed P1 High-priority issues at the top of the work list labels Jul 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) a: desktop Running on desktop customer: google Various Google teams P2 Important issues not at the top of the work list platform-windows Building on or for Windows specifically team-desktop Owned by Desktop platforms team triaged-desktop Triaged by Desktop platforms team
Projects
Status: Todo
Development

No branches or pull requests

7 participants