Commit Graph

145 Commits

Author SHA1 Message Date
2aea81749c Make guessed labels non-focusable to minimize on tabbing. 2019-12-30 09:16:00 -06:00
d5c79f7c56 Don't guess the label for a label. 2019-12-30 09:13:32 -06:00
5b2c16f342 Filter out InputEventMouseButton with device ID of -1, which seems to indicate an origin of touchscreen. Only pass through if explore-by-touch is active. 2019-12-30 08:27:20 -06:00
fbbbb1e06e Revert "Apparently, focused is triggered on mouse_enter as well, so this code isn't needed."
Necessary for next commit, which selectively ignores mouse events and needs this code for explore-by-touch.

This reverts commit dc6186c583.
2019-12-30 08:25:57 -06:00
dc6186c583 Apparently, focused is triggered on mouse_enter as well, so this code isn't needed. 2019-12-29 21:53:35 -06:00
50ea09d7f7 And bring back old cleanup code, which now seems to work better post-yield-abandonment. 2019-12-29 20:14:11 -06:00
96e7153410 Back to storing Accessible as array in ScreenReader, since otherwise the SceneTree is thrashed. 2019-12-29 19:53:15 -06:00
833a34b602 Don't speak empty labels since this seems to cause a silent crash. 2019-12-29 19:52:33 -06:00
4ff6b51114 Double-tap runs ui_accept. 2019-12-29 18:52:44 -06:00
f17c070887 Swiping right/left moves focus between controls. 2019-12-29 18:44:15 -06:00
462cd08bbc Add hook to initiate explore-by-touch. 2019-12-29 18:23:51 -06:00
71318fe938 Count number of taps, and add stub code to dispatch action. 2019-12-29 18:18:09 -06:00
6542994a25 Initial support for touchscreen swipe left/right/up/down. 2019-12-29 17:59:48 -06:00
8f53556129 Better label-guessing logic, and make associated labels non-focusable. 2019-12-28 14:41:36 -06:00
14e1832803 Remove stray whitespace. 2019-12-27 12:54:27 -06:00
75433eb5d6 Migrate focus restoration to _process. 2019-12-27 12:50:33 -06:00
d6a6609673 Eliminate yield in favor of _process. 2019-12-27 12:46:09 -06:00
aea75e961e Eliminate warnings about disconnection of nonexistent timeout signal. 2019-12-27 12:04:09 -06:00
b5a83e1c25 Add stub for detecting touchscreen events. 2019-12-27 11:19:49 -06:00
9051f381fe Use WeakRef to avoid double-free of timers. 2019-12-26 18:39:10 -06:00
d9c740abd6 Return to having Accessible be a Node under ScreenReader, and having _exit_tree free resources.
This eliminates the need to track and iterate through a separate array of `Accessible`s in `ScreenReader`.

The previous performance issues are resolved by ensuring that any nodes processed aren't children of the `ScreenReader` node. I don't know of another way to avoid triggering signals on a child node than checking ancestry and failing fast.
2019-12-26 18:25:26 -06:00
24483e4453 Patch another leak. 2019-12-23 09:59:12 -06:00
606766e0e8 Store list of Accessibles and clean up manually. 2019-12-22 21:01:47 -06:00
dfe0c8179e Make Accessible extend Node and parent it to ScreenReader for easier cleanup. 2019-12-22 18:55:45 -06:00
6adce2706c Ensure text and old_text are set before processing text changes. 2019-12-22 10:26:44 -06:00
4a8934abb3 Update README. 2019-12-22 09:56:22 -06:00
8e7f8c69f9 Connect signal in deferred mode to make plugin work on Beta 4. 2019-12-22 09:33:00 -06:00
ebf63b10e5 Update README. 2019-12-21 10:51:12 -06:00
b413961c52 Separate out editor accessibility from addition of the ScreenReader node. 2019-12-21 10:13:06 -06:00
b4acee6dea Support .godot-accessibility-editor-settings.ini file in project root. Currently supports setting rate and globally disabling plugin. 2019-12-21 09:54:12 -06:00
9f93730aa8 Switch order of Range and ProgressBar checks, resolving crash and restoring progress updates. 2019-12-20 13:59:31 -06:00
0a96ddb2e4 Don't hard-code rate to maximum. 2019-10-18 12:10:11 -05:00
6982e2023d Don't speak range changes if the node isn't focused. 2019-10-18 11:35:04 -05:00
e1d24a00a4 Basic support for Range.
Tested with `HSlider` and has basic support for other widget types, but I'm only adding support for what I'm immediately using or can access via the editor.
2019-10-18 10:58:16 -05:00
82b24801a3 Basic stub functionality for TextEdit.
This can barely be called "support." It reads all text as a single block. I'd like to at least be able to unfocus the `TextEdit`, but it's going to require a custom key. Ctrl-tab and Ctrl-shift-tab seem like good candidates, but the editor grabs those already.
2019-10-18 10:44:31 -05:00
fc3c70e16c #2: Fix incorrect method name in signal connection.
Fixes #2.
2019-10-17 10:02:55 -05:00
b7facbdf69 Merge branch 'ellenhp/godot-accessibility-fix_tree_multiselect' 2019-10-17 09:41:41 -05:00
Ellen Poe
fc475ae6b8 Fix tree traversal bug 2019-10-16 18:09:01 -07:00
dced450b46 Substitute is checks with is_class so they'll work in editor and export builds. 2019-10-14 09:36:08 -05:00
fdd5f1a5f6 Assorted changes:
* Try to improve list selection handling.
 * Use `get_class()` to check class membership for editor classes not included in exported games.
2019-10-10 09:49:54 -05:00
792504deb6 Set default rate to 100. 2019-10-10 09:49:33 -05:00
6b0c920549 Crude mitigation for out-of-bounds list indices when arrowing through ItemList. 2019-10-08 14:29:20 -05:00
23fd884b2e Various changes:
* Add automatic speaking of percentages when changed.
 * Remove icon for now.
2019-10-08 08:56:51 -05:00
723d4c298c Very naive support for LineEdit input, only single-character changes for now. 2019-10-03 10:28:54 -05:00
d0d80b1cb2 If unfocused, don't set an initial focus if one was restored in the meantime. 2019-10-03 09:52:41 -05:00
18943786a9 When setting up initial tree selection, don't render the node unless it is focused. 2019-10-03 09:47:24 -05:00
5a38aac4a9 Make naming a bit more consistent with signals. 2019-10-03 09:41:49 -05:00
0783dfb548 Add global signal-catching for better handling of cases where focus is lost. 2019-10-03 09:34:22 -05:00
0e8b6ae9e8 Use global TTS singleton to avoid passing around instances. 2019-10-02 16:20:25 -05:00
8ef356b9bb Special-case disallowing focus on bunches of nodes. 2019-09-30 15:24:02 -05:00