Giter VIP home page Giter VIP logo

speaktouch's People

Contributors

irineu333 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

patrykmis

speaktouch's Issues

Improve type detection

Type detection based on class name is rudimentary and needs to be improved.

  • Improve type detection.
  • Extract and localize text.

Create context menu

The context menu should have functions related to the selected element, and the options depend on the element's properties.

Editable

  • Paste
  • Speak (Speech To Text)
  • Clear

Readable

  • Copy

Checkable

  • Enable/Disable

Clickable

  • Click

Long Clickable

  • Long click

Implement re-focus

Just like Talkback and Jieshou, SpeakTouch should be able to re-read the focused view

Note: This feature cannot interfere with #66

Implement gestures

Implement gesture detection.

Simple

  • Right
  • Left
  • Up
  • Down

Compound

  • Up, Down
  • Up, Right
  • Up, Left
  • Down, Up
  • Down, Right
  • Down, Left

Not focusing on the follow button in Threads suggestions

Describe the bug:

Testing in the Threads app, made in JetPack Compose, I noticed that SpeakTouch is not focusing on the follow button in the profile suggestions to follow.

To Reproduce:

Open the Threads app, and navigate to "suggestions for you", try focusing on the follow button within each suggestion card.

Evidence: SpeakTouch

screen-20230930-173848.mp4

Expected behavior

You should focus on the follow button, just like with Jeishou and Talkback.

Evidence: Jeishou

screen-20230930-174007.mp4

More infos:

App version: 1.0.0 - DEV
Android version: 12
Device: Moto G30

WebView support

Currently, SpeakTouch cannot read web content either from Chromium-based web browsers nor Firefox-based ones.

Interacting with web components (texts, alternate descriptions for images, links, buttons, clickable elements, combo boxes, checkboxes [form elements] etc.) maybe challanging to implement; for MVP let it just announce the content.

App is focusing on non-readable ViewGroup

Describe the bug:

I discovered this bug by browsing the YouTube community tab post, if you find a post with a description long enough to need to expand, SpeakTouch will focus on a non-readable ViewGrop and simply say nothing.

To Reproduce:

Find a post with a long description on YouTube communities.

Expected behavior

It should focus on the Text View, which has the action of expanding, like talkback and jeishou.

Screenshots:

Speak Touch

screen-20230928-023551.mp4

Layout

It shouldn't focus It should focus
Screenshot_20230928-023632.png Screenshot_20230928-023626.png

Talkback behavior

screen-20230928-023734.mp4

Stack trace (to dev):

No have

More infos:

App version: 1.0.0 - DEV
Android version: 12
Device: Motorola G30

Speak Touch does not focus on texts

Probably due to the correction "not focusing on inner text" #5 , Speak Touch is not focusing on texts that it should be focusing on because it falls into Priority 1 due to an actionable ancestor.

Speak Touch Talkback
Image Image

We need to distinguish situations like this, where the focus should go to the texts, from situations such as a button with internal text. One clue is the fact that Talkback does not allow focusing on the dialog container.

Review node reading

To revise and refactor the node reading system.

Note: Use Talkback's behavior as a parameter, since it is also a reference for developers.

Rename app to Speak Touch

"Screen Reader" was a provisional name. After considering other names, it was decided that the name of the app will be "Speak Touch", especially since I recently discovered that there is already a screen reader app called "Screen Reader".

Therefore, the name and package of the app should be changed to "Speak Touch" and "com.neo.speaktouch".

Play Store title

English

Speak Touch - Screen reader for blind

Português

Speak Touch - Leitor de tela para cegos

Not focusing on WhatsApp notification

Describe the bug:

In notifications, the app is not focusing on the WhatsApp notification card, instead it is only focusing on its content when expanded

To Reproduce:

Receive a WhatsApp message, open the settings and focus it

Evidence: SpeakTouch

screen-20230930-230548.mp4

Expected behavior

It should focus on the notification card, just like Talkback and Jieshou

Evidence: Talkback

screen-20230930-230637.mp4

More infos:

App version: 1.0.0 - DEV
Android version: 12
Device: Moto G30

Wrong focus in lock screen pin keyboard

Speak Touch is not focusing on buttons when hovering, only when clicking or navigating. Additionally, it is focusing on the inner texts, a behavior that is not seen in Talkback and Jieshuo.

Wrong

  1. Not focusing on buttons when hovering.
  2. Focusing on inner text, a behavior not seen in Talkback and Jieshuo.

Correct

  1. Focusing on buttons when hovering.
  2. Not focusing on inner text.
Speak Touch Talkback
Image Image

Observations

  1. While conducting usability tests, I noticed that sometimes it would focus on the button. Ran more tests and I realized that the chances of it happening increased if we moved our finger very quickly.
  2. When the hovering ends, it always focuses on the button.

Improvement and Optimize SpeakTouch

Alguns pontos que podem ser melhorados no app

  • Rodar interceptadores em paralelo (performance)
  • Cache na verificação do tipo da classe (performance)
  • Abstrair regras de foco (legibilidade)
  • Otimizar verificação que envolve grandes inteirações (performance)
  • Remove logs que usam funções pesadas

Not reading containers correctly

Comparing to Talkback, some behaviors of Speak Touch don't seem correct regarding containers.

Context:
Consider container ViewGroup whose what matters to us are their children. When a node with children meets the criteria to be focusable by accessibility but doesn't have text or contentDescription, the SpeechInterceptor reads its children. This solves the problem of custom buttons, such as CardView with TextView inside.

Problem:
I couldn't fully understand the Talkback criteria, so I created my own through trial and error, and due to that, some behaviors are different from Talkback. From these different behaviors, I identified two that seem wrong.

  1. It's not reading some nodes with isCheckable inside containers when they don't have text or contentDescription. This is wrong and Talkback is able to read them.

  2. It's reading focusable nodes inside containers. Talkback doesn't do that, and I believe it's because these nodes can be individually explored.

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.