Giter Club home page Giter Club logo

tecla-framework's People

Contributors

ericwan78 avatar ijdoc avatar k22mak avatar robertfoss avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

tecla-framework's Issues

DPad is intrusive, try drawing it around the perimeter of the screen

To minimize obstruction of the UI, the DPad should be removed from the center of the screen and arranged more discretely around the perifery of the screen.

Other suggested effects include fading out all HUD "buttons" with the exception of the one currently highlighted.

Current passive highlighting approach will not allow for Shield navigation

The current highlighting approach - which focuses on detecting the UI element that will take keyboard input so it can be emphasized - presents too many inconsistencies to be useful for switch-based navigation. This is due to the fact that it is subject to the implementation of the full set of accessibility properties on every active element. Unfortunately, not even the most common built-in applications (e.g., Gmail) provide a complete implementation (e.g., it is not actually possible to use the keyboard to activate the email drop-down that appears on each email view).

Thus, it will be necessary to programmatically drive the highlighting, focus targeting and navigation of every node so switch users can interact with the device in a way that makes sense to them (e.g., active views with the same Y coordinate can be grouped for sequential scanning). Instead of tracking views, this will require tracking screen changes so that the user interface can be analyzed and the Accessibility Service prepared for navigating the new content as a whole.

This should be considered a blocker!

Highlight does not update when app group opens

When home screen /launcher icons are grouped, clicking on the group explodes a small pop-up that does not trigger the event required to refresh the highlight.

Solving this bug likely involves finding the right kind of event that can be used to trigger a refresh. Alternatively, it may be possible that the pop-up is simply triggered by a visibility change rather than a screen change.

Plug debuggin overlay back in

Debugging interface was disconnected as part of the process of moving the touch interface out of the accessibility service

Change description of the Tecla Accessibility service

The description should contain the following:

"The Tecla Highlighter service emphasizes the screen elements that are selected to receive input from external devices. This makes your Android device easier to use with remote controls, keyboards and external switches."

Remember that this string should be added to the strings XML resource instead of being hard-coded.

Ensure the IME is created before the HUD is shown.

One way to trigger the creation of the IME is to show a transparent overlay with a transparent edit box, which should force open the IME and create its service if it hasnt yet been created. Then we can track the IME onCreate method in the framework to show the HUD if the a11y service is running (is enabled).

Implement simple escaping gesture for HUD overlay

A long-press is perhaps the best way to achieve this. It will facilitate testing and debugging by removing the need to navigate all the way to the accessibility service options to turn the HUD off.

Add a preferences screen to the Accessibility Service

There should be a preferences screen associated with the Tecla Accessibility Service. For the purpose of this issue, it will be sufficient to add an "About" preference showing a screen that acknowledges contributions to the project once it is selected.

Out of bounds exception on Galaxy Nexus @ 4.2.1

02-12 13:06:17.325: E/AndroidRuntime(17972): FATAL EXCEPTION: main
02-12 13:06:17.325: E/AndroidRuntime(17972): java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1
02-12 13:06:17.325: E/AndroidRuntime(17972):    at java.util.ArrayList.get(ArrayList.java:306)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at ca.idrc.tecla.TeclaAccessibilityService.onAccessibilityEvent(TeclaAccessibilityService.java:68)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at android.accessibilityservice.AccessibilityService$1.onAccessibilityEvent(AccessibilityService.java:523)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at android.accessibilityservice.AccessibilityService$IAccessibilityServiceClientWrapper.executeMessage(AccessibilityService.java:589)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:40)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at android.os.Looper.loop(Looper.java:137)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at android.app.ActivityThread.main(ActivityThread.java:5039)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at java.lang.reflect.Method.invokeNative(Native Method)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at java.lang.reflect.Method.invoke(Method.java:511)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-12 13:06:17.325: E/AndroidRuntime(17972):    at dalvik.system.NativeStart.main(Native Method)

Implement back key emulation on Tecla HUD

This should be done through a Tecla IME Service class inside the framework library. Eventually, the target IME will extend this custom class instead of the standard IME Service.

Force close on Galaxy Nexus (JellyBean 4.2.1)

trace:

02-12 12:36:00.286: E/AndroidRuntime(17047): FATAL EXCEPTION: main
02-12 12:36:00.286: E/AndroidRuntime(17047): java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1
02-12 12:36:00.286: E/AndroidRuntime(17047):    at java.util.ArrayList.get(ArrayList.java:306)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at ca.idrc.tecla.TeclaAccessibilityService.onAccessibilityEvent(TeclaAccessibilityService.java:61)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at android.accessibilityservice.AccessibilityService$1.onAccessibilityEvent(AccessibilityService.java:523)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at android.accessibilityservice.AccessibilityService$IAccessibilityServiceClientWrapper.executeMessage(AccessibilityService.java:589)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:40)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at android.os.Looper.loop(Looper.java:137)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at android.app.ActivityThread.main(ActivityThread.java:5039)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at java.lang.reflect.Method.invokeNative(Native Method)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at java.lang.reflect.Method.invoke(Method.java:511)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-12 12:36:00.286: E/AndroidRuntime(17047):    at dalvik.system.NativeStart.main(Native Method)

Make highlight colour a preference

The UI navigation and on-screen keyboard highlights should allow for custom colours to be used.

This bug is not currently a priority and should not be attempted until after the first release of the Tecla Access app for Jelly Bean. It has been transferred from its equivalent originally reported on the TeclaAccess project here: KomodoOpenLab/TeclaAccess#171

Highlight should follow keyboard focus

This is an example of how the Tecla highlight does not match the focused element. Perhaps the highlight is following the accessibilit and not the keyboard focus?

should_follow_keyboard

Debugging touch interface should be implemented as a separate overlay

The debugging, touch-based navigation gestures should be implemented in a separate instance of simple overlay so that the DEBUG=flag can switch it off completely.

This will also help make the code more modular preventing the touch methods from interfering with the highlighting methods.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.