AT-SPI: an invalid node has no "invalid-entry" state
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
- 78/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- rust
- Domínio
- accessibility
Direção de pesquisa
Leia NodeWrapper::state em adapters/atspi-common/src/node.rs e verifique como Node::is_required() e os mapeamentos de estado relacionados funcionam. Em seguida, localize na API accesskit_consumer como expor o valor inválido de um nó. O trabalho está concluído quando nós com qualquer valor Invalid incluírem o estado AT-SPI State::InvalidEntry; verifique seguindo a reprodução com Accerciser ou atspi.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Platform: Linux (AT-SPI, accesskit_atspi_common)
What happens: a node with invalid set (for example a required text input whose value doesn't validate, aria-invalid="true") reaches AT-SPI without the invalid-entry state, so Orca doesn't say "invalid entry" when the field gets focus.
Expected: StateSet includes State::InvalidEntry whenever the node's invalid is set (any Invalid value). Chromium does the same: it maps aria-invalid to ATK_STATE_INVALID_ENTRY.
Reproduce: set node.set_invalid(Invalid::True) on a text input and read its states with Accerciser or atspi. invalid-entry is missing, while required, read-only and the others mapped in NodeWrapper::state are present.
Proposed change:
accesskit_consumer: addNode::is_invalid()(or exposeinvalid()).adapters/atspi-common/src/node.rs,NodeWrapper::state: next to theis_required()check, addif state.is_invalid() { atspi_state.insert(State::InvalidEntry); }
For other platforms: UIA has IsDataValidForForm (Windows), and macOS has AXInvalid. I can look at those too if that's wanted.
- Linguagem predominante
- Rust
- Estrelas
- 1.6k
- Forks
- 135
- Merge médio
- 10h 53min
- PRs com merge (30d)
- 11
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
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
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 15/100
Mantenedores costumam responder em até 1 dia
Todas as issues de AccessKit/accesskit
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 62/100
-
bug UI
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
wardian-app/Wardian#1746 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
jlcodes99/cockpit-tools#3125 ·
Mantenedores costumam responder em até 2 dias
-
bug user-sprint
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Vondor/KassenSturz#967 ·
Mantenedores costumam responder em até 1 dia