AT-SPI: an invalid node has no "invalid-entry" state
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
- 78/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- rust
- Bereich
- accessibility
Rechercherichtung
Lies NodeWrapper::state in adapters/atspi-common/src/node.rs und prüfe, wie Node::is_required() und die zugehörigen Statuszuordnungen funktionieren. Suche dann in der accesskit_consumer-API nach einer Möglichkeit, den ungültigen Wert eines Knotens abzurufen. Fertig ist die Änderung, wenn Knoten mit einem beliebigen Invalid-Wert den AT-SPI-Status State::InvalidEntry enthalten; überprüfe dies, indem du die Reproduktion mit Accerciser oder atspi nachvollziehst.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Rust
- Sterne
- 1.6k
- Forks
- 135
- Ø Merge
- 10 Std. 53 Min.
- Gemergte PRs (30 T.)
- 11
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
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
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 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in AccessKit/accesskit
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 62/100
-
bug UI
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
wardian-app/Wardian#1746 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
jlcodes99/cockpit-tools#3125 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
bug user-sprint
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Vondor/KassenSturz#967 ·
Maintainer antworten meist innerhalb von 1 Tag