Android: only send accessibility-focus-cleared when the node had accessibility focus
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 52/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- android, rust
- Domínio
- accessibility
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Rust
- Estrelas
- 1.5k
- Forks
- 127
- Merge médio
- 2d 10h
- PRs com merge (30d)
- 14
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de AccessKit/accesskit
-
Document sub-treesAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
Document `Role::ColorWell`Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 48/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 18/100
Mantenedores costumam responder em até 1 dia
Todas as issues de AccessKit/accesskit
Issues semelhantes
-
bug dependencies kind:fix priority: P3 ready-for-agent
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
shep-pm/shep#1318 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 2 dias
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
swc-project/swc-next#1165 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
Alive24/shea-symphony#574 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia