You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Current idea for this: Send additional semantics nodes, that are currently outside of the viewport at the top and bottom of the scrollable, over to the engine. Mark these nodes with a new SemanticsFlag hidden. In iOS, we position their a11y frame outside of the visible screen, so they can only be focused by using left/right swipes to jump from one element to the next. If a hidden element gains focus, we will fire a showOnScreen action, which brings that element on screen. This requires improvements to showOnScreen as well (e.g. only scroll if the element is actually not visible on screen, etc. #11665)
Remaining problem with this approach: When you move the a11y focus from outside the list into the list via left/right swipes, we will focus on the first hidden element of the list and bring that into view instead of moving the focus to the first visible element.
Challenges:
We need to work this into the traversal order system. On Android, we do not want the hidden semantics nodes to be part of the traversal order. On iOS, they need to be part of it. In particular, focus needs to move from the last visible element of the scrollable to the first hidden one for this to work.
This will most likely mean we need to fix the default geometric order as well to take app structure into account (#14681). The hidden elements and the visible ones need to form one continuous traversal order, by default. (cc @gspencergoog)
When swiping through all elements of a scrollable, the list should scroll slightly when the last/first partially visible element is reached
I am testing a ListView on an iPhone 7, iOS 13.3 and I can't get this behavior. The list doesn't scroll when I try to focus the next element. It works just fine on Android.
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.
Activity
goderbauer commentedon Feb 14, 2018
Current idea for this: Send additional semantics nodes, that are currently outside of the viewport at the top and bottom of the scrollable, over to the engine. Mark these nodes with a new SemanticsFlag hidden. In iOS, we position their a11y frame outside of the visible screen, so they can only be focused by using left/right swipes to jump from one element to the next. If a hidden element gains focus, we will fire a showOnScreen action, which brings that element on screen. This requires improvements to showOnScreen as well (e.g. only scroll if the element is actually not visible on screen, etc. #11665)
Remaining problem with this approach: When you move the a11y focus from outside the list into the list via left/right swipes, we will focus on the first hidden element of the list and bring that into view instead of moving the focus to the first visible element.
Challenges:
We need to work this into the traversal order system. On Android, we do not want the hidden semantics nodes to be part of the traversal order. On iOS, they need to be part of it. In particular, focus needs to move from the last visible element of the scrollable to the first hidden one for this to work.
This will most likely mean we need to fix the default geometric order as well to take app structure into account (#14681). The hidden elements and the visible ones need to form one continuous traversal order, by default. (cc @gspencergoog)
cmoralesweb commentedon Jun 4, 2020
When swiping through all elements of a scrollable, the list should scroll slightly when the last/first partially visible element is reachedI am testing a ListView on an iPhone 7, iOS 13.3 and I can't get this behavior. The list doesn't scroll when I try to focus the next element. It works just fine on Android.
github-actions commentedon Aug 20, 2021
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.