Android: only send accessibility-focus-cleared when the node had accessibility focus
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 52/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- android, rust
- Bereich
- accessibility
Rechercherichtung
Start in Adapter::perform_action, where ACTION_CLEAR_ACCESSIBILITY_FOCUS is handled. Check the node’s accessibility-focus state before sending the cleared event or invalidating the host. Done when repeating the action on a node without focus produces neither effect, while clearing focus from a focused node still works; the issue does not name a test file.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Problem
A repeated ACTION_CLEAR_ACCESSIBILITY_FOCUS for a node that no longer holds accessibility focus still sends TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED and invalidates the host. Screen readers can send this action more than once while moving focus, which produces a spurious cleared event for a node that was not focused.
Proposed fix
Only emit the event (and invalidate the host) when the node did hold accessibility focus, as a real View does. It is a small change in Adapter::perform_action.
Testing
Tested on a physical realme RMX5032 running Android 16 (API 36) with Google TalkBack 17.1.0 and with BackTalk, in an app using this adapter; swiping through controls behaves normally.
AI disclosure
I used an AI assistant (Claude) to help investigate and write this change. I reviewed the diff and ran the checks and the device testing myself.
I saw that AccessKit no longer accepts external pull requests (#832), so I'm opening an issue instead. If the plan looks reasonable, I'd be glad to send the PR as a member; I have the change ready and can share it however you prefer.
- Vorherrschende Sprache
- Rust
- Sterne
- 1.5k
- Forks
- 127
- Ø Merge
- 16 Std. 45 Min.
- Gemergte PRs (30 T.)
- 12
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus AccessKit/accesskit
-
Document sub-treesOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 56/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 48/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in AccessKit/accesskit
Ähnliche Issues
-
good first issue help wanted r-docs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
servo/rust-smallvec#824 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
superradcompany/microsandbox#1974 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
Maintainer antworten meist innerhalb von 1 Tag
-
priority middle
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 62/100
KATO-Hiro/AtCoderClans#12940 ·
Maintainer antworten meist innerhalb von 1 Tag