Conversation
|
Just a note that this was vibe coded, but was checked to make sure it works well enough. Focus tracking could be better, but I can easily install packages, review output line by line, and page through info pages. |
| <!ENTITY TERMUX_FLOAT_APP_NAME "Termux:Float"> | ||
| <!ENTITY TERMUX_STYLING_APP_NAME "Termux:Styling"> | ||
| <!ENTITY TERMUX_TASKER_APP_NAME "Termux:Tasker"> | ||
| <!ENTITY TERMUX_WIDGET_APP_NAME "Termux:Widget"> |
|
Sorry, I was originally going to just have it be a separate app, but other people encouraged me to just submit a PR and so I reverted most of the changes. This last commit should fix that issue. |
Add comprehensive accessibility support for Android screen readers (TalkBack) to improve terminal and Extra Keys navigation for users with visual impairments. Terminal view accessibility: - Add TerminalAccessibilityHelper using ExploreByTouchHelper to expose terminal lines as individual accessible items - Implement line-by-line navigation with automatic hard-wrapped line merging for continuous paragraph reading - Add text sanitization to remove terminal control characters and backslash continuation markers from announcements - Improve accessibility focus tracking during scrolling and text updates - Suppress redundant status bar announcements during navigation - Differentiate between jitter events and intentional scrolling Extra Keys accessibility: - Add content descriptions to all Extra Keys buttons (e.g., "Up", "Backspace", "Control") for better screen reader announcements - Support navigation keys (arrows, Home, End, Page Up/Down) - Support modifier keys (Ctrl, Alt, Function) - Support special keys (Drawer, Keyboard, Scroll, Paste) This implementation allows screen reader users to: - Navigate terminal output line-by-line using swipe gestures - Read hard-wrapped lines as continuous paragraphs - Access all Extra Keys buttons with proper labels - Use the terminal effectively without visual feedback
|
@devinprater This is a really valuable and important effort 🙏! Will review and test it. Could you rebase on top of the |
Bumps [gradle/actions](https://github.com/gradle/actions) from 4 to 5. - [Release notes](https://github.com/gradle/actions/releases) - [Commits](gradle/actions@v4...v5) --- updated-dependencies: - dependency-name: gradle/actions dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](actions/setup-java@v4...v5) --- updated-dependencies: - dependency-name: actions/setup-java dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Replace `gradle/wrapper-validation-action@v3` with `gradle/actions/wrapper-validation@5` which should fix the error seen e.g. [here](https://github.com/termux/termux-app/actions/runs/20685857619/job/59386383274): > Error: The action gradle/actions/wrapper-validation@v3.5.0 is not allowed in termux/termux-app because all actions must be from a repository owned by termux, created by GitHub, or match one of the patterns: gradle/actions/dependency-submission@*, gradle/wrapper-validation-action@v*.
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Fredrik Fornwall <fredrik@fornwall.net>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v4...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
|
Okay, that should be updated. |
thanks for this pr, i was going to do something like this myself and submit one. |
This pull request introduces major accessibility improvements for the Termux terminal view, focusing on screen reader support and improved virtual key handling. The most significant changes include the addition of a custom accessibility helper for the terminal view, enhanced accessibility event handling, and improved toggling and feedback for virtual Control and Fn keys. These updates make the terminal experience much more usable for users relying on assistive technologies.
Accessibility Enhancements:
TerminalAccessibilityHelperclass that implementsExploreByTouchHelper, enabling semantic navigation and interaction for screen readers by exposing logical text blocks (paragraphs/lines) in the terminal (terminal-view/src/main/java/com/termux/view/TerminalAccessibilityHelper.java).TerminalView, registering it as the accessibility delegate and tracking screen/cursor state for accessibility announcements (terminal-view/src/main/java/com/termux/view/TerminalView.java). [1] [2]TerminalViewto announce content changes, cursor movement, and text deletions in a way that is compatible with screen readers and (usually) avoids redundant feedback (terminal-view/src/main/java/com/termux/view/TerminalView.java).terminal-view/src/main/java/com/termux/view/TerminalView.java). [1] [2]Virtual Key Handling Improvements:
app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java). [1] [2] [3] [4]AccessibilityManagerto provide immediate feedback when toggling modifier keys (app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java).Dependency Updates:
androidx.coreandandroidx.customviewto support the new accessibility features (terminal-view/build.gradle).