我遇到問題,無法爲我的Flex應用程序中的文本設置自定義閱讀順序。我在每個文本元素上設置了tabIndex
屬性,我知道這是設置屏幕閱讀器閱讀順序的正確方法。Flex輔助功能 - 無法設置屏幕閱讀器順序
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute">
<mx:Label x="10" y="10" text="1" tabIndex="2" />
<mx:Label x="10" y="36" text="2" tabIndex="1" />
<mx:Label x="10" y="62" text="3" tabIndex="3" />
</mx:Application>
對於這個小測試應用程序,屏幕閱讀器(JAWS 12)讀取「1 2 3」而不是「2 1 3」。
一些測試似乎表明,這只是我特定配置的問題。我正在使用Flex SDK 4.1編譯應用程序,但僅使用MX組件集和Halo主題。我們已經有了一個相當複雜的應用程序,它在Flex 4出現之前就開始了,所以雖然我們用最新的SDK進行了編譯,但我們還沒有升級任何東西來使用Spark組件集。
當我使用4.1 SDK和Spark組件+主題製作類似的測試應用程序時,閱讀順序設置正確。如果我製作測試應用程序並使用3.5 SDK進行編譯,則結果相同 - 一切正常。
我知道我可以切換到使用Spark組件,但我試圖避免這種情況,因爲這意味着時間軸將不得不在我正在進行的當前項目中進行更改。
有沒有人遇到任何類似的問題,或有任何建議,可能會得到這個工作?
感謝您的回覆。不過,我仍然無法在使用文本控件時更改閱讀順序。 – 2011-04-13 22:13:20
我的問題不在於讓文本首先被讀取 - 工作正常。問題是控制閱讀順序。在我處理的實際應用程序中,頁面佈局有點複雜,我需要能夠指定頁面上文本的讀取順序,因爲基於位置的默認排序並不正確。 – 2011-04-13 22:17:56
啊gotcha。那麼,標籤索引僅適用於同一容器內的組件。所以,如果你的文本不在同一個容器內,除非你把一些東西拼湊在一起,否則你會遇到麻煩。現在我想到了,我很驚訝沒有人做過一個圖書館,使這個更容易處理... – 2011-04-14 12:16:34