• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于iOS平臺(tái)的盲用軟件無(wú)障礙設(shè)計(jì)思想淺析

      2019-01-28 06:41:04高沛友胡安娜安俊英
      互聯(lián)網(wǎng)天地 2018年11期
      關(guān)鍵詞:普通用戶控件界面

      □ 文 高沛友 胡安娜 安俊英

      軟件無(wú)障礙設(shè)計(jì)是指通過(guò)技術(shù)手段,使任何人都能成功的瀏覽、理解和使用所開(kāi)發(fā)的應(yīng)用。一款設(shè)計(jì)良好的軟件應(yīng)可供所有能力的用戶使用,包括低視力、全盲、聽(tīng)力障礙、認(rèn)知障礙或運(yùn)動(dòng)障礙的用戶。改進(jìn)產(chǎn)品的無(wú)障礙功能可以增強(qiáng)所有用戶的可用性,尤其對(duì)于殘障用戶,這將對(duì)其產(chǎn)生不可估量的積極作用。本文主要針對(duì)視障用戶的使用特點(diǎn),淺談工作中iOS平臺(tái)軟件無(wú)障礙設(shè)計(jì)思想與理念,以供其他開(kāi)發(fā)者借鑒。

      一、面向視障用戶的軟件無(wú)障礙設(shè)計(jì)現(xiàn)狀

      視障用戶使用iOS平臺(tái)的服務(wù)和軟件,需要借助一款屏幕閱讀器——VoiceOver。這是蘋(píng)果推出的一項(xiàng)輔助功能,他可以把屏幕上的內(nèi)容用語(yǔ)音的方式朗讀出來(lái),并且配合一些簡(jiǎn)單的交互方式,可使朗讀的焦點(diǎn)在整個(gè)屏幕上的不同元素之間切換。這樣視障用戶也可以正常操作軟件的各項(xiàng)功能。Voice Over從2009年推出至今已經(jīng)有10年歷史。最早只能在iPod音樂(lè)播放器中使用,經(jīng)過(guò)不斷發(fā)展,現(xiàn)在該功能已經(jīng)覆蓋安裝mac OS、iOS、w atch OS,甚至tv OS系統(tǒng)的全系列產(chǎn)品。同時(shí),蘋(píng)果還提供了一套非常方便的API,讓開(kāi)發(fā)者支持Voice Over成為舉手之勞,從而將iOS軟件無(wú)障礙設(shè)計(jì)水平提升到前所未有的高度。

      開(kāi)發(fā)完全支持VoiceOv er的iOS應(yīng)用,首先需掌握如何使用VoiceOver,可以在通用->輔助功能->Voic e Over找到并且開(kāi)啟。為方便測(cè)試,建議開(kāi)發(fā)者將輔助功能快捷鍵設(shè)置成Voic e Over,只需要連按三次Home鍵就能開(kāi)啟/關(guān)閉VoiceOver。VoiceOver開(kāi)啟后,可以嘗試Voic e Over練習(xí)功能,該功能將會(huì)引導(dǎo)開(kāi)發(fā)人員做最基本的Voic e Over手勢(shì)。在開(kāi)發(fā)中最基本的手勢(shì)包括:?jiǎn)沃赣|摸屏幕上的元素進(jìn)行選擇,單指雙擊屏幕任意位置對(duì)剛剛選擇的元素進(jìn)行點(diǎn)擊,單指左右滑動(dòng)屏幕按空間順序切換屏幕上的元素,雙指在屏幕上做1.5次折返運(yùn)動(dòng)退出當(dāng)前界面(如先向右,再向左,再向右,或先向上,再向下,再向上等),三指上下左右滑動(dòng)滾動(dòng)當(dāng)前選擇的View。這幾個(gè)手勢(shì)涵蓋了日常使用的大部分場(chǎng)景,只要軟件能兼容這些操作,應(yīng)用就可基本實(shí)現(xiàn)無(wú)障礙訪問(wèn)。

      可以被Voic e Ov er訪問(wèn)的UI元素稱(chēng)為無(wú)障礙元素(Ac cessibility Element)。當(dāng)視障用戶單指觸摸一個(gè)無(wú)障礙元素,該元素將被選中,VoiceOver會(huì)將其的信息讀出來(lái)。該信息包括元素的無(wú)障礙標(biāo)簽(Accessibility Label),無(wú)障礙提示(Accessibility Hint)以及無(wú)障礙元素的形狀、位置和狀態(tài)等。單指點(diǎn)擊屏幕任意位置兩次,激活當(dāng)前元素的默認(rèn)動(dòng)作。如當(dāng)前無(wú)障礙元素是一個(gè)按鈕,那么執(zhí)行的就是按鈕的Ac tion事件。雙指在屏幕上做1.5次折返運(yùn)動(dòng),響應(yīng)的是v iew的Pop或Dismiss事件,可根據(jù)軟件設(shè)計(jì)需要進(jìn)行設(shè)置。三指上下左右滑動(dòng),觸發(fā)的是View的ScrollView事件。在軟件開(kāi)發(fā)中,UIKit中的絕大多數(shù)控件在默認(rèn)狀態(tài)下已經(jīng)被設(shè)置為無(wú)障礙元素,不用做什么特殊支持,視障用戶就可以使用Voic e Over訪問(wèn)這些元素。但如果遇到比較復(fù)雜的場(chǎng)景,或與明眼用戶存在交互差異的情況,需要開(kāi)發(fā)人員掌握一定的無(wú)障礙設(shè)計(jì)理念,才能完成一個(gè)軟件的無(wú)障礙支持。

      二、面向視障用戶的軟件無(wú)障礙設(shè)計(jì)思想

      1.保證視覺(jué)傳達(dá)與聽(tīng)覺(jué)傳達(dá)的同步性

      視覺(jué)傳達(dá)是通過(guò)視覺(jué)傳遞信息的方式,是普通用戶獲取信息的主要方式。聽(tīng)覺(jué)傳達(dá)是是通過(guò)聲音傳達(dá)信息的方式,是視障用戶獲取信息的主要方式。由于絕大多數(shù)開(kāi)發(fā)者是明眼人,設(shè)計(jì)界面和功能時(shí)大多從視覺(jué)傳達(dá)的角度出發(fā),所有交互設(shè)計(jì)都以滿足普通用戶為主,往往忽視了以視覺(jué)傳達(dá)為主的視障用戶的可訪問(wèn)性。10年前如果想同時(shí)滿足視覺(jué)和聽(tīng)覺(jué)傳達(dá)的設(shè)計(jì)方案將非常復(fù)雜,需要投入大量資源去開(kāi)發(fā)和維護(hù)。但隨著蘋(píng)果VoiceOver的橫空出世,隨著iOS平臺(tái)軟件無(wú)障礙設(shè)計(jì)的不斷完善,推出的這套完善的A PI,使同時(shí)滿足普通用戶和視障用戶的訪問(wèn)需求變得輕而易舉。但在實(shí)際的開(kāi)發(fā)工作中,還有一些要點(diǎn)需要注意,這主要體現(xiàn)在以下幾個(gè)方面:

      對(duì)非文本控件元素的處理。如果一個(gè)控件已經(jīng)設(shè)置了title屬性,在絕大多數(shù)情況下你不用做任何事情,這個(gè)控件就能被Voic e Ov er讀出。但在軟件設(shè)計(jì)中,由于界面美觀的需要,我們現(xiàn)在很少使用純文本的控件元素,一般都會(huì)由美術(shù)工程師給元素設(shè)計(jì)相應(yīng)的圖標(biāo),然后構(gòu)建一個(gè)純圖片的控件。在這種情況下,很多開(kāi)發(fā)者會(huì)省略title,或隨便編寫(xiě)一些提示性的字符串。這會(huì)對(duì)視障用戶的瀏覽造成嚴(yán)重影響,他們將無(wú)法通過(guò)Voice Over獲取到控件的title,自然也無(wú)法知道控件的作用。要解決這個(gè)問(wèn)題,請(qǐng)務(wù)必為其設(shè)置accessibility Label,這個(gè)屬性在NSOb je c t上面,用于存儲(chǔ)視障用戶觸摸該元素時(shí)所播報(bào)的提示。另外還有ac c essibilit y Hint屬性,用于存儲(chǔ)更進(jìn)一步的提示,當(dāng)視障用戶觸摸該元素,播報(bào)完title或Accessibility Label2秒后,將播報(bào)此提示。該屬性往往用于功能較復(fù)雜的元素。比如開(kāi)發(fā)一個(gè)播放器,在播放器上三指左滑切換上一曲、三指右滑切換下一曲,這種復(fù)雜的操作提示就可以放在Accessibility Hint中。這部分最后需做Localization設(shè)置,讓不同語(yǔ)言的視障用戶都能享受到無(wú)障礙瀏覽的樂(lè)趣。

      對(duì)UI元素狀態(tài)變化的處理。有時(shí)候我們會(huì)碰到一種場(chǎng)景,在十個(gè)元素里面,選擇了其中三個(gè),這個(gè)時(shí)候UI已經(jīng)發(fā)生了變化,普通用戶可以看到元素是被選中的。但是Voic e Over不一定能識(shí)別這種視覺(jué)變化,如果他讀取不到控件的selected屬性,將無(wú)法播報(bào)元素的狀態(tài)。所以當(dāng)控件有selec ted屬性時(shí)請(qǐng)務(wù)必更新該屬性,而不僅僅是UI上面做出一些變化。如果控件沒(méi)有這個(gè)屬性,也可以通過(guò)手動(dòng)給ac c essibility Label加上“已選擇”的文案,從而達(dá)到視覺(jué)傳達(dá)與聽(tīng)覺(jué)傳達(dá)的同步性。

      2.重視由繁入簡(jiǎn)的通道補(bǔ)償設(shè)計(jì)

      普通用戶以視覺(jué)通道為獲取信息的主要路徑,通過(guò)視覺(jué)傳達(dá)能獲取70%以上的信息。而視障用戶只能依靠聽(tīng)覺(jué)通道作為信息獲取的主要路徑,接收的信息遠(yuǎn)遠(yuǎn)少于視覺(jué)傳達(dá)。這就需要開(kāi)發(fā)人員通過(guò)“通道補(bǔ)償設(shè)計(jì)”,彌補(bǔ)聽(tīng)覺(jué)傳達(dá)的損失。尤其是在一些復(fù)雜場(chǎng)景下,更加需要這種化繁為簡(jiǎn)的設(shè)計(jì)思想。在iOS平臺(tái)的軟件開(kāi)發(fā)中,需要特別留意以下幾方面內(nèi)容:

      對(duì)控件嵌套的處理。在開(kāi)發(fā)中,有時(shí)一個(gè)控件里會(huì)套著多個(gè)控件,這種控件的空間結(jié)構(gòu)和隸屬關(guān)系相對(duì)復(fù)雜,Voice Over通常無(wú)法聚焦到每一個(gè)控件上,也無(wú)法向用戶描述界面的結(jié)構(gòu)和功能。當(dāng)視障用戶觸摸底層控件時(shí),Voice Over會(huì)將所有子視圖的title連在一起讀出來(lái),令使用者難以分辨,非?;靵y。針對(duì)這種情況,開(kāi)發(fā)人員需要把最底層的控件設(shè)置成非無(wú)障礙元素(self.is Ac c essibility Element =NO),然后分別對(duì)他子視圖的Accessibility Label屬性進(jìn)行設(shè)置。這樣設(shè)計(jì),就將一個(gè)復(fù)雜的嵌套結(jié)構(gòu)簡(jiǎn)化成了幾個(gè)簡(jiǎn)單的控件元素,大大提高了視障用戶的可訪問(wèn)性。

      對(duì)重繪的處理。在自定義控件中,常常使用重繪來(lái)構(gòu)建所需要的元素,但這卻成為視障用戶瀏覽界面時(shí)最大的障礙。因?yàn)橹乩L的元素?zé)o法直接設(shè)置為無(wú)障礙元素,使用VoiceOver無(wú)法讀出元素的title,無(wú)法描述元素的位置和形狀,無(wú)法響應(yīng)單指雙擊執(zhí)行默認(rèn)動(dòng)作的手勢(shì)。這個(gè)元素對(duì)于視障用戶來(lái)說(shuō)就是有障礙的,是不可訪問(wèn)的。但得益于iOS這套無(wú)障礙A PI的設(shè)計(jì),就可以比較簡(jiǎn)單的支持Voic e Over的操作。在一個(gè)容器上重繪時(shí),需要按照UIAccessibility Container的方式,將重繪的每一個(gè)獨(dú)立的元素都描述成UIAccessibilityElement的實(shí)例,再進(jìn)行無(wú)障礙元素的設(shè)置。這個(gè)承載重繪元素的控件稱(chēng)為Accessibility Cont ainer。在開(kāi)發(fā)時(shí),Access ibility Container的isAccessibilityElement值必須設(shè)置為false,另外如需要?jiǎng)?chuàng)建出所有的UIAccessibility Element的實(shí)例,然后賦給accessibility Elements各項(xiàng)屬性。通過(guò)up dateAccessibleElements的方法更新、維護(hù)所有的UIAc c essibility Element實(shí)例,當(dāng)界面上的內(nèi)容發(fā)生變化,或者Voice Over開(kāi)啟關(guān)閉狀態(tài)發(fā)生變化時(shí),調(diào)用此方法可以更新accessibilityElements的信息。

      3.合理利用iOS平臺(tái)的無(wú)障礙特性

      相比普通用戶,視障用戶在使用特點(diǎn)和瀏覽習(xí)慣上均有其特殊性。在iOS平臺(tái)上,多數(shù)無(wú)障礙需求可以通過(guò)修改無(wú)障礙元素的屬性和方法輕松實(shí)現(xiàn)。但如果想追求更加全面的無(wú)障礙體驗(yàn),還需使用無(wú)障礙API中的一些特性,有針對(duì)性的做一些工作。

      對(duì)ac c essibility Perform Esc ap e方法的處理。普通用戶使用軟件時(shí)如想退出當(dāng)前界面通常情況下需要點(diǎn)擊界面左上角的返回按鈕,但這個(gè)操作對(duì)于視障用戶來(lái)說(shuō)并不是太方便。尤其當(dāng)該按鈕需要經(jīng)常點(diǎn)擊時(shí)更是如此。Voice Over有一個(gè)比較復(fù)雜的手勢(shì),雙指沿著任意方向在屏幕上做1.5次折返運(yùn)動(dòng),用于退出當(dāng)前界面。最常見(jiàn)的使用場(chǎng)景是響應(yīng)普通用戶的右滑返回或退出一個(gè)View Controller。視障用戶使用該手勢(shì)時(shí),會(huì)觸發(fā)accessibilityPerformEscap e方法,這時(shí)你可以響應(yīng)自己想要的退出動(dòng)作,比如Dismiss或者Pop。

      對(duì)ac c essibilityPerformMagicTap方法的處理。在開(kāi)發(fā)中描述相關(guān)聯(lián)的一組信息往往用到好幾個(gè)元素。例如描述一本電子書(shū)的信息,可能包含書(shū)名、作者、定價(jià)、上市日期四個(gè)元素。普通用戶通過(guò)視覺(jué)可快速獲取全部。但對(duì)于視障用戶則必須觸摸屏幕4次,或者左右滑動(dòng)4次才能獲取到全部信息,無(wú)論瀏覽的效率還是操作的便捷性都不能令人滿意。那有沒(méi)有能兼顧普通用戶和視障用戶的方案呢?回答是肯定的。可以將四個(gè)元素合并成一個(gè)無(wú)障礙元素,該元素的無(wú)障礙標(biāo)簽可以顯示4個(gè)元素?zé)o障礙標(biāo)簽的合并值。這樣可以減少在冗余元素之間切換的時(shí)間,大大提高視障用戶的瀏覽效率。如果合并的元素是多個(gè)可操作的按鈕時(shí),可以考慮使用accessibility Perform Magic Tap方法。該方法的Action會(huì)彈出列表樣式的UIAlert Controller來(lái)供用戶操作。

      對(duì)A c c essibilit y Not ific at ion的處理。Ac c essibilit y提供了一系列的通知,可以完成一些特定的需求。比如你可監(jiān)聽(tīng)UIAccessibi lity Voice Over Status Changed通知,來(lái)監(jiān)控Voic e Over開(kāi)啟和關(guān)閉的狀態(tài),或Ap p中發(fā)送的通知,使系統(tǒng)觸發(fā)某個(gè)事件。當(dāng)你界面上的AccessibilityElement有變動(dòng)的時(shí)候你可以發(fā)送UIAccessibility Layout Changed Notification通知,通知發(fā)送時(shí)使用UIAccessibility的專(zhuān)用的方法,UIAccessibility Post Notification函數(shù)有兩個(gè)參數(shù),第一個(gè)是通知名,第二個(gè)是VoiceOver讀出來(lái)的字符串或者是Voice Over所聚焦的新元素。這就妥善的解決了視障用戶獲取通知的問(wèn)題,如執(zhí)行進(jìn)度、操作狀態(tài)等提示。

      綜上所述,本文對(duì)iOS平臺(tái)面向視障用戶的軟件無(wú)障礙設(shè)計(jì)思想和常用開(kāi)發(fā)技巧進(jìn)行梳理。通過(guò)梳理不難發(fā)現(xiàn),實(shí)現(xiàn)軟件無(wú)障礙設(shè)計(jì)并不復(fù)雜,一旦成為開(kāi)發(fā)中的習(xí)慣,支持無(wú)障礙將會(huì)是一件輕松的事情。他既不會(huì)影響現(xiàn)有的UI設(shè)計(jì),也不會(huì)給開(kāi)發(fā)和測(cè)試帶來(lái)很多負(fù)擔(dān),更不會(huì)對(duì)軟件的功能造成影響。因此,希望通過(guò)本文能夠引起開(kāi)發(fā)人員足夠的重視,讓軟件開(kāi)發(fā)中的無(wú)障礙設(shè)計(jì)成為一種習(xí)慣??赡荛_(kāi)發(fā)人員的一項(xiàng)隨手操作,就會(huì)給視障用戶群體帶來(lái)極大方便?!?/p>

      猜你喜歡
      普通用戶控件界面
      國(guó)企黨委前置研究的“四個(gè)界面”
      即使是普通用戶也需要備一張家庭影院入門(mén)攻略:影音調(diào)校工具篇1
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開(kāi)發(fā)方法研究
      人機(jī)交互界面發(fā)展趨勢(shì)研究
      Numerical Analysis of Refueling Drogue Oscillation During Refueling Docking
      手機(jī)界面中圖形符號(hào)的發(fā)展趨向
      新聞傳播(2015年11期)2015-07-18 11:15:04
      普通用戶簡(jiǎn)單、流暢才是明智選擇
      就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      離線發(fā)文件 不是會(huì)員也能用
      阿勒泰市| 西城区| 禹城市| 苏尼特右旗| 宁强县| 德钦县| 桦甸市| 六枝特区| 北票市| 沙湾县| 凌海市| 邵阳市| 汝州市| 衡阳市| 英山县| 英德市| 自治县| 广河县| 河北省| 盱眙县| 芷江| 晋中市| 佳木斯市| 滕州市| 沈丘县| 乌拉特中旗| 咸宁市| 历史| 龙南县| 威海市| 藁城市| 三门县| 鸡东县| 抚顺县| 科技| 阿合奇县| 历史| 香河县| 永昌县| 博罗县| 威信县|