我正在设计我的第一个Android IME并且有点不知所措。我的目标是与可访问性相关的,因此我想知道我是否正在尝试使用IME框架,这是不可能的。我已经采用了默认的软键盘示例并将其与我的一些修改一起使用,所以我至少理解了其中的一些,但是我没有关于我正在尝试的一些事情的大量文档。这就是我的意思:
目前,只有触摸屏键盘的Android手机无法访问。我目前有一个可访问的触摸屏键盘,使用类似于IOS / VoiceOver中使用的方法,因此项目的一部分已完成,并且在IME框架中完全可以直接完成。
目前,Android的辅助功能API不提供用于导航文本字段的可访问反馈。也就是说,在加载Android屏幕阅读器的情况下,如果您输入单词“this”,您会在键入时听到单个字符,但如果您在“s”上尝试向左箭头,则不会说出。因此,我希望捕捉动作并为过去导航的元素提供语音反馈。这是我开始遇到问题的地方。
我目前有左右箭头的语音反馈,使用getCurrentInputConnection.getTextBeforeCursor(1,0)向左箭头,以及类似的向右箭头调用。这会在处理移动后获取当前在光标下的字符,并且一切都很好。
但是,我的挑战来自于在线之间向上和向下箭头。理想情况下,我想抓住当前的文本并说出来,但我认为没有办法做到这一点。我唯一能想到的是getTextBefore / AfterCursor(Integer.MAX_VALUE,0)的组合并组合这些值,通过过滤前一个和下一个\ n来确定当前行。还有另一种方法 - 将字段的整个文本内容作为单个文本块,并使用光标位置来确定该文本的哪一部分代表当前行?我在各种输入法类中看到了一些关于提取文本的内容,似乎有一种方法可以监视它,但我不知道这对我是否有用(即返回整个字段)内容?)
我的下一个目标是提供标准的文本导航功能。 Android辅助功能目前不包括触摸屏探索,因此无法滚动大块文本。我不一定希望人们在他们的手机上写小说,但我想提供快速手势或命令来上下移动段落,以及更长字段的顶部/底部。国际货币基金组织是否提供光标移动的方法,还是超出其权限范围?
答案 0 :(得分:0)
老实说,我没有得到第一部分:(
对于第二个问题,您需要手动处理。 例如,要添加具有向下绘制的键并使其工作,您需要:
onKey
方法中检查代码。sendDownUpKeyEvents
。