Commit Graph

183 Commits

Author SHA1 Message Date
7630fa3ec0 Capture arrow input on trees so UI focus doesn't skitter off randomly. 2019-09-25 09:12:40 -05:00
636c275c7f Use create_timer rather than keeping one around only for AcceptDialog. 2019-09-25 09:07:26 -05:00
e60f5dcda1 Revert "Use queue_free rather than free."
This reverts commit 0786b6e6ab.
2019-09-25 07:31:18 -05:00
1654b3729f Use tts.singular_or_plural. 2019-09-24 18:07:22 -05:00
0786b6e6ab Use queue_free rather than free. 2019-09-24 17:36:27 -05:00
eeb8a3a171 Check for the presence of added methods so the plugin will partially work on unpatched engines. 2019-09-24 15:13:15 -05:00
d0afc9e4e3 Fix logic for right-arrowing through tree columns in light of other recent tree selection changes. 2019-09-24 14:42:46 -05:00
e82fd7f8b8 Add ScreenReader as a custom node in the editor plugin. 2019-09-24 09:20:45 -05:00
981606ab21 Refactor to support running both in the editor and in game UIs.
Here I add a `ScreenReader` `Node` which, when added to the `SceneTree`, should read the contents of any supported `Control`. I also do a bit of cleanup on filenames, as well as breaking the editor plugin support into its own class.
2019-09-24 09:01:37 -05:00
8f9a0cd4d7 TreeItem.get_next_visible(...) seems to iterate through children just fine, so use it for selecting only one item. 2019-09-21 09:47:15 -05:00
45c44352ba Fixes:
* It was the mouse warping, not the grabbing of focus, that caused keyboard traversal issues. Now we only mouse-warp prior to simulating a right-click via Menu.
 * Despite what the docs say, `id_focused` seems to pass an index, not an ID. Now popup menu items speak more accurately.
2019-09-21 09:19:00 -05:00
977b3407ea Don't automatically grab keyboard focus on mouse-enter, since that seems to interfere with keyboard traversal somehow. 2019-09-21 08:58:03 -05:00
de2f22b0c2 Only speak tab changes if tabs have focus. 2019-09-21 08:54:12 -05:00
77db176e20 For trees allowing multiple selection, force selection of a single row for now.
I'm not immediately sure how to present multiple tree selections. I also don't know if I can control selection status from the input events. So, for the time being, we force a single row to be selected. This isn't the most ideal solution, but it makes debugging other issues easier, so I'll use it for now to unblock other work.
2019-09-20 10:28:17 -05:00
f11edefdb5 Speak classes of controls for which we don't have a handler, and minor naming cleanup. 2019-09-20 08:55:47 -05:00
56a7652656 Assorted changes:
* Use new TTS.gd script rather than loading directly. TTS.gd gives us flexibility to handle TTS with the native Rust plugin on some platforms, something like a Java module under Android, etc.
 * Make `Panel` focusable. This handles the case where exiting a game from the editor places focus on an element without focus, thus breaking keyboard navigation.
 * Log when we attempt to grab focus so I can debug cases where focus tries to go somewhere it can't.
2019-09-17 10:42:58 -05:00
40cb92d39b Merge branch 'master' of https://gitlab.com/lightsoutgames/godot-accessibility 2019-09-13 09:32:51 -05:00
2ca275d7fe Name consistency fix. 2019-09-13 09:32:39 -05:00
d481e74261 Clean up node presentation.
* Concatenate tokens then join them, rather than building up strings token by token and conditionally presenting them.
 * Present `hint_tooltip` in lieu of text in some cases, and don't present it again afterwards.
2019-09-09 21:36:09 -05:00
11a8dc7aa2 Add _Menu_ as keyboard shortcut to perform right-click. Also, clean up PopupMenu presentation to speak shortcut names. 2019-09-09 20:58:24 -05:00
d42d913f29 Remove sample game and refactor plugin for use in separate games. The standalone game will probably be refactored to an accessible starter game. 2019-09-09 14:53:44 -05:00
fc985bfd93 Better presentation of checkboxes. 2019-09-09 14:45:44 -05:00
421dcbcf42 Check node tree ancestry, rather than superclass ancestry, to associate an EditorProperty with its label. 2019-09-09 14:44:10 -05:00
1f5a6a878f Add better CheckBox handling, and comment out notification print debugging. 2019-09-09 08:35:05 -05:00
355b25b10a Add support for speaking collapsed/expanded status of EditorInspectorSection. 2019-09-07 12:50:01 -05:00
2ee04f5978 Minor changes.
* Reference godot-tts addon via `res://addons/godot-tts`.
 * Add notification handler to eventually trap window close, doesn't currently seem to work.
2019-09-07 12:26:50 -05:00
51a6f1410f Speak tab changes via tab_changed signal. 2019-09-05 09:16:25 -05:00
744e2727db Enough changes to launch a basic game!
* Add an action to autoclose the dialog for setting keybindings after 5 seconds, thus allowing capturing keys to attach to actions.
 * Remove "Hello, world." from global script and move it into player.
 * Add commands to speak coordinates, headings, and to stop speech.
 * Add Quit command.
 * Announce new screen on change.
 * Other minor cleanups.
2019-09-05 09:01:20 -05:00
8acbab94df Remove extraneous prints. 2019-09-04 13:17:05 -05:00
c6f53c79ee Various additions:
* Added method to simulate left mouse-clicks for items with no keyboard accessibility.
 * Add ability to expand `EditorInspectorSection` to get at the properties contained therein via simulated mouse-click.
 * Added method for selecting tree columns.
 * Added mechanism to switch between buttons in columns using Home/End.
 * Use custom `TreeItem.get_button_tooltip(...)` getter to retrieve tooltips for buttons in columns.
 * Send correct signal when button is pressed.
 * Other minor improvements.
2019-09-04 11:32:41 -05:00
44dc4cd43a Prevent left/right arrows from working on most nodes since that is confusing from an a11y perspective. Also add basic logic for detecting toolbars/menubars. 2019-09-03 20:27:31 -05:00
5ee1abe1bb Move focus check into separate method. 2019-09-03 17:43:20 -05:00
fc80b9f345 Basic support for multi-column trees. 2019-09-03 17:22:02 -05:00
1cbc59aa6f Clean up code such that control names and their backing implementations are easier to associate. 2019-09-03 16:45:46 -05:00
aa93b0e294 Use cell_selected rather than my previous hack. 2019-09-03 16:33:02 -05:00
8ebdb5ee57 Better accessible handling for Tree. Also, fix casing error in script. 2019-09-03 15:57:32 -05:00
cf8ede147d Only present tab focus if it has actually changed. 2019-09-03 12:58:47 -05:00
75a65fa81c Enhance Tree presentation and add main script to sample game. 2019-09-03 12:54:19 -05:00
4762af0840 Add player and main scene. 2019-09-03 08:46:45 -05:00
f7db1ddff3 Fix case. 2019-09-02 12:56:56 -05:00
877effcf54 Start creating a basic game in which to build this plugin.
Current features include:
 * A global script that initializes the TTS extension and speaks "Hello, world."
 * A player Area2D node.

Once this plugin gains more features, the basic game will be removed, and it will be built in the context of actual production games.
2019-09-02 11:54:39 -05:00
323d6bcc25 Fix issue where speech is cut off when navigating between tabs. 2019-09-02 11:08:10 -05:00
75844f66d9 Access to TabContainer. 2019-09-02 09:55:51 -05:00
6a967e8add Fix issue where speech for caret moves cuts off announcement of LineEdit field and content. 2019-09-02 07:48:50 -05:00
9817ee0e80 Add support for speaking EditorProperty labels associated with some controls. 2019-09-02 07:41:16 -05:00
7c52002274 Snapshot. 2019-09-02 07:04:45 -05:00
cba7fb8366 Don't make raw Control objects focusable. 2018-07-19 20:47:59 +00:00
46149791fd More exclusions for automatic focussability. 2018-07-19 20:38:02 +00:00
140063b1a6 Fix for focusing on trees with no selected items. 2018-07-19 20:20:48 +00:00
b05ad0307e Initial support for PopupMenu. 2018-07-19 20:12:01 +00:00