how to enable the Accessibility in the app
第一部分
先要装一个accchecker,全称是 UI Accessibility Checker 。下载地址: http://acccheck.codeplex.com/
装了之后 用这个工具可以 testapp的 accessiblity ,主要是一些ui问题
比如accchecker所查出来的控件 有很多缺少 automationproperties.name属性的 要添加上
至于name取什么名 要看控件的作用而定
第二部分
tab 键的 顺序 及 所有可以点击的控件 都要能tab到
就是 要让app可以不用鼠标 也能完成大部分功能
第三部分
是 narrator 电脑自带的一个工具 他可以读出 UI控件的automationproperties.name 也就是给盲人用的
所以 那些有作用的 控件 比如最常见的 button 还有 有点击事件的 listviewitem等等 都需要narrator能读出来
想要的结果就是 narrator读出来的name,你可以知道点这个控件能干什么。 如 后退键 获取焦点时 narrator 应该读出 back button. 类似的 给automationproperties.name
赋值
Narrator要获取 focus 才会读的 tab focus order 很关键 有些你希望narrator读出来 但是 这个控件又不是一个能获取焦点的控件 可能就需要自己强制该控件可以获得焦点 你先看看你按tab键哪些 控件会一一获得焦点 从这里入手
Tap three times with four fingers to review the full set of touch gestures supported by Narrator.
Drag a single finger arround the screen to hear the names of the items you're touching.
If you 're using a key board, press Caps Lock+F1 to review the full set of Narrator commands.
Ctrl+Shift+Enter
|
获取当前项目的信息
|
Ctrl+Shift+空格键
|
阅读整个选定的窗口
|
Ctrl+Alt+空格键
|
阅读在当前窗口中选择的项目
|
Insert+Ctrl+G
|
阅读有关出现在当前选定元素旁边的项目的描述
|
Ctrl
|
使讲述人停止阅读文本
|
Insert+Q
|
将光标向后移动到具有不同格式的以前任何文本的开端。例如,将光标从粗体字词移动到其前面的非粗体字词的开端。
|
Insert+W
|
将光标移动到其后具有不同格式的任何文本的开端。例如,将光标从粗体字词移动到其后非粗体字词的开端。
|
Insert+E
|
将光标向后移动到具有相同格式的任何文本的开端。例如,将光标从粗体字词中间移动到该词的开端。
|
Insert+R
|
将光标移动到具有相同格式的任何文本的末端。例如,将光标从粗体字词中间移动到该字词的末端。
|
Insert+F2
|
选择与光标处字符具有相同格式的所有文本
|
Insert+F3
|
阅读当前字符
|
Insert+F4
|
阅读当前字词
|
Insert+F5
|
阅读当前行
|
Insert+F6
|
阅读当前段落
|
Insert+F7
|
阅读当前页
|
Insert+F8
|
阅读当前文档
|
使用mvvm模式,有些类需要重写ToString(),不然会出现:Duplicate sibling Name+Role
After checked the CheckBox of “Read and interact with the screen using the mouse” in Narrator Settings/Navigation,
Narrator can read RichTextBlock and TextBlock.
第四部分 是 highcontrast
主要是给色盲也可以access我们的app
这个msdn code gallery里有详细的 code sample
http://code.msdn.microsoft.com/windowsapps/XAML-high-contrast-style-c0ce936f
常用 StaticResource:
ApplicationForegroundThemeBrush 当前主题的文本颜色。
对于一个按钮,
1.<VisualStateManager.VisualStateGroups>中
首先要考虑<VisualStateGroup x:Name="ApplicationViewStates">中的:
FullScreenLandscape,Filled, FullScreenPortrait, Snapped
其次要考虑<VisualStateGroup x:Name="CommonStates">中的:
Normal, PointerOver, Pressed, Disabled
2.同时<ResourceDictionary.ThemeDictionaries>中要考虑:
Default, HighContrast(HighContrastBlack,HighContrastWhite,HighContrastCustom);
这些排列组合的种类真是多啊!
--------------------------------------------------------------------------------
下面的网页中详细描述了
Accessibility for Windows Store apps using C#/VB/C++ and XAML
http://msdn.microsoft.com/en-us/library/windows/apps/hh452680.aspx
还有:
UI Automation Overview http://msdn.microsoft.com/en-us/library/windows/apps/ee684076.aspx
Testing your app for accessibility (XAML) http://msdn.microsoft.com/en-us/library/windows/apps/hh994937.aspx
Exposing basic information about UI elements (XAML) http://msdn.microsoft.com/en-us/library/windows/apps/hh868160.aspx
how to enable the Accessibility in the app的更多相关文章
- Enable Cross-Origin Requests in Asp.Net WebApi 2[Reprint]
Browser security prevents a web page from making AJAX requests to another domain. This restriction i ...
- Charles 抓包手机app
最近在测为移动端提供的API, 使用mac系统, 发现fiddler在mac下无法使用, 不知道其他朋友是否遇见过, 只能找替代工具. 先去百度上搜索下载Charles 破解版, 选择Charles是 ...
- Add Languages to Your Xamarin Apps with Multilingual App Toolkit
With Xamarin, you can extend your cross-platform apps with support for native speakers, reaching mar ...
- Android Studio 2.3版本 Run项目不能自动启动APP的问题 (转)
参考: http://blog.csdn.net/lucasey/article/details/61071377 Android Studio 升级到2.3版本后 运行项目后,只是安装上了,而APP ...
- 新创建的项目AndroidManifast报App is not indexable by Google Search;
原错误提示:App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VI ...
- We're sorry but demo3 doesn't work properly without JavaScript enabled. Please enable it to continue.
今天遇到一个问题为 vue请求得到的响应为 We're sorry but demo3 doesn't work properly without JavaScript enabled. Please ...
- puppeteer(五)chrome启动参数列表API
List of Chromium Command Line Switches https://peter.sh/experiments/chromium-command-line-switches/ ...
- CEF 支持的命令行参数
参考:https://peter.sh/experiments/chromium-command-line-switches/ List of Chromium Command Line Switch ...
- Capabilities & ChromeOptions
https://sites.google.com/a/chromium.org/chromedriver/capabilities http://stackoverflow.com/questions ...
随机推荐
- CUDA C Programming Guide 在线教程学习笔记 Part 8
▶ 线程束表决函数(Warp Vote Functions) ● 用于同一线程束内各线程通信和计算规约指标. // device_functions.h,cc < 9.0 __DEVICE_FU ...
- DevExpress.XtraEditors.Groupcontrol 中创建按钮
1. 添加引用: Imports DevExpress.XtraEditors.ButtonsPanelControl 2. 添加按钮语句: GroupControl1.CustomHeaderBut ...
- 线程安全计算 AtomicLong
一般如果我们自己写一个计数器方法,需要考虑线程安全问题,尤其高并发访问的时候. AtomicLong 已处理并发问题,直接使用.java.util.concurrent.atomic包提供多种线程安全 ...
- 使用Teleport Ultra批量克隆网站,使用Easy CHM合并生成chm文件
1.要下载的页面 http://www.howsoftworks.net/javaapi/ 2. 下载Teleport Ultra 3.使用Teleport Ultra批量克隆网站 4.下载Easy ...
- VBA 连接文本的自定义函数(可用于数组公式)
Function ConTxt(ParamArray args() As Variant) As VariantDim tmptext As Variant, i As Variant, cellv ...
- VB6 如何创建一个标准控制台程序
打开 VB6 并新建一个标准EXE程序,把窗口删掉,然后再加入一个模块. 在模块中加入AllocConsole.FreeConsole.SetConsoleTitle.Sleep的API声明: Pub ...
- ubuntu sudo apt-get upgrade 和 sudo apt-get dist-upgrade区别
sudo apt-get upgrade: 不会对系统产生重大的影响,可以在任何时候运行. sudo apt-get dist-upgrade: 涉及核心的升级,通常会对系统功能产生实际的影响,可能在 ...
- 配置tomcat日志分割
由于Tomcat在默认情况下会将没有经过配置的web应用所产生的日志输出已及其本身的日志内容都输出到这个文件中,那么随着时间的推移,这个文件的尺寸将会越来越大,当需要检查日志内容时间会导致文件难以打开 ...
- spring中作用域的问题
在一般情况下:我们登录系统时,第一次登录当用户名或密码输入错误,在登录页面给出错误原因,当我们再刷新登录页面,应该是首次登录系统的页面(这时就不应该再给出出错提示),这时我们就应该想到错误提示信息到底 ...
- oracle 查看被锁的表和解锁
相关视图 SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$process ;S ...