我正在尝试为我的应用程序添加可访问性。我仍然不能确切地弄清楚可访问性是如何在spark组件中工作的。我在window的平台上启用了叙述者功能。我所要做的就是用不同的名称命名这三个字段,以便用户知道该怎么做。我试图只是使用声明来定义可访问性属性,但它似乎总是只会说出按钮的一个名称。因此,我采用了另一种方法,并尝试在创建完成后创建可访问性属性。似乎叙述者有时会在一开始选择可访问性的正确名称,然后很快,当我到达按钮时,它会替换所有名称并将其称为"搜索按钮"。知道为什么吗?我很困惑。如有任何帮助,不胜感激。
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:accessbility="flash.accessibility.*" initialize="onInit()" creationComplete="onComplete()">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.modernista.swffocus.SWFFocus;
private function onComplete():void {
var ap1:AccessibilityProperties = new AccessibilityProperties();
ap1.name = "search";
searchInput.accessibilityProperties = ap1;
var ap2:AccessibilityProperties = new AccessibilityProperties();
ap2.name = "name input";
nameInput.accessibilityProperties = ap2;
var sb:AccessibilityProperties = new AccessibilityProperties();
sb.name = "search button";
searchSubmit.accessibilityProperties = sb;
Accessibility.updateProperties();
}
// this helps Firefox capture and release keyboard focus
private function onInit():void {
SWFFocus.init(systemManager.stage as Stage);
}
]]>
</fx:Script>
<mx:Form defaultButton="{searchSubmit}">
<mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle" >
<mx:TextInput id="searchInput" width="540">
</mx:TextInput>
<mx:TextInput id="nameInput" width="540">
</mx:TextInput>
<mx:Button id="searchSubmit" label="search" />
</mx:HBox>
</mx:Form>
</s:WindowedApplication>
我想做的就是用不同的名称命名这三个字段,以便用户知道该怎么做。我试图只是使用声明来定义可访问性属性,但它似乎总是只会说出按钮的一个名称。
MS叙述者是你只有在没有其他选择时才会使用的工具之一。当你身处荒郊野外时,想想那个令人毛骨悚然的老加油站。我会使用NVDA来测试这个应用程序,NVDA是一个免费的屏幕阅读器,它和JAWS一样好,而且使用NVDA v进行测试更容易接受。 MS叙述者)。
因此,我采用了另一种方法,并尝试在创建完成时创建可访问性属性。似乎叙述者有时会在一开始选择正确的辅助功能名称,然后很快,当我到达按钮时,它会替换所有名称并将其命名为"搜索按钮"
我认为这更多地归因于叙述者的不稳定。
它看起来也像你没有包括可访问性库,但我不是一个Flex开发,所以我不知道他们是否需要,就像在Flash。
代码 var sb:AccessibilityProperties = new AccessibilityProperties();
sb.name = "search button";
我要去掉按钮。大多数辅助技术都添加了元素类型,所以这个按钮会被宣布为搜索按钮按钮。
进一步阅读:
- http://www.sitepoint.com/accessibility-in-flex-apps/
- http://www.adobe.com/accessibility/products/flex/best_practices.html