Commit e9753d5
committed
Improve TalkBack and screen reader accessibility
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 feedback1 parent 8aca6db commit e9753d5
File tree
7 files changed
+451
-12
lines changed- app/src/main/java/com/termux/app/terminal
- terminal-view
- src/main/java/com/termux/view
7 files changed
+451
-12
lines changedLines changed: 37 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
63 | | - | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
309 | 310 | | |
310 | 311 | | |
311 | 312 | | |
312 | | - | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
313 | 317 | | |
314 | 318 | | |
315 | | - | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
316 | 323 | | |
317 | 324 | | |
318 | 325 | | |
319 | 326 | | |
320 | 327 | | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
321 | 336 | | |
322 | 337 | | |
323 | 338 | | |
324 | 339 | | |
325 | | - | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
326 | 347 | | |
327 | 348 | | |
328 | 349 | | |
| |||
337 | 358 | | |
338 | 359 | | |
339 | 360 | | |
340 | | - | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
341 | 368 | | |
342 | 369 | | |
343 | 370 | | |
| |||
359 | 386 | | |
360 | 387 | | |
361 | 388 | | |
362 | | - | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
363 | 393 | | |
364 | 394 | | |
365 | 395 | | |
| |||
448 | 478 | | |
449 | 479 | | |
450 | 480 | | |
451 | | - | |
| 481 | + | |
452 | 482 | | |
453 | 483 | | |
454 | 484 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
9 | 11 | | |
10 | 12 | | |
11 | 13 | | |
| |||
Lines changed: 125 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
0 commit comments