fix(a11y): give Windows UI Automation names and keyboard semantics - #1227
Open
Pates2004 wants to merge 1 commit into
Open
fix(a11y): give Windows UI Automation names and keyboard semantics#1227Pates2004 wants to merge 1 commit into
Pates2004 wants to merge 1 commit into
Conversation
Greptile SummaryThe PR improves Windows accessibility across the desktop UI by assigning semantic roles, localized names, state and range metadata, focus behavior, and keyboard actions to custom-painted controls.
Confidence Score: 5/5The PR appears safe to merge; no concrete changed-code defect or independently actionable non-blocking issue was identified. The new semantic wrappers preserve the existing state-update handlers while adding explicit names, roles, values, focusability, and keyboard or accessibility actions, and the dependency advisories inspected were not introduced by this change.
|
| Filename | Overview |
|---|---|
| crates/openlogi-desktop/src/ui/components.rs | Introduces the central accessible control wrappers, including named sliders, switches, dropdown triggers, and profile tabs, with focused keyboard tests. |
| crates/openlogi-desktop/src/app.rs | Makes the application root semantic and adjusts initial focus traversal so focus enters the first usable control. |
| crates/openlogi-desktop/src/windows/settings/appearance.rs | Adds radio-group structure and accessible names to appearance, icon, radius, scale, filter, and theme controls. |
| crates/openlogi-desktop/src/ui/carousel.rs | Replaces icon-only carousel arrows with named semantic buttons while preserving disabled navigation behavior. |
| Cargo.toml | Advances gpui-component and related assets to the label-capable revision used by the accessibility implementation. |
| Cargo.lock | Locks compatible GPUI and gpui-component revisions and their resulting transitive dependency graph. |
| crates/openlogi-ui/locales/en.yml | Adds the English source accessibility strings mirrored across all locale catalogs. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
User[Keyboard or assistive technology] --> Semantic[Named GPUI semantic control]
Semantic --> Action[Keyboard or accessibility action]
Action --> State[AppState update]
State --> IPC[Existing agent IPC path]
IPC --> Device[Device or application setting]
Reviews (1): Last reviewed commit: "fix(gui): improve Windows accessibility ..." | Re-trigger Greptile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Custom-painted controls exposed only pointer handlers or icon glyphs. Their
visible text was not an accessible name, so NVDA announced generic “button”,
“switch”, or “slider” controls—or nothing at all.
Changes
to sliders, toggles, radio/choice cards, tabs, menu rows, and device controls;
gpui_basecontrols while preserving the existing visual design;navigation regions;
gpui-componentto the label-capable revision andzed/gpuito thecompatible lockfile revision.
Testing
cargo fmt --all -- --checkRUSTFLAGS=-D warnings cargo clippy --workspace --all-targets -- -D warningsRUSTFLAGS=-D warnings cargo test --workspace(one pre-existing xtask CI-mapassertion fails because
ci.ymldoes not list the documented rustdoc command)RUSTFLAGS=-D warnings cargo test -p openlogi-ui localeRUSTFLAGS=-D warnings cargo test -p openlogi-desktop i18nwas not attached.
Dependency follow-up
The settings sidebar fix is prepared as a separate upstream PR in this working
tree. Once it is merged, bump the OpenLogi pins to that upstream commit; the
current OpenLogi commit is intentionally based on the public label-capable
revision so it remains buildable without a local path dependency.
Fixes #1226