中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何提高網(wǎng)頁設(shè)計(jì)的可訪問性

2022-06-03    分類: 網(wǎng)站建設(shè)

掘金是一個(gè)高質(zhì)量的技術(shù)社區(qū),從 CSS 到 Vue.js,性能優(yōu)化到開源類庫,讓你不錯(cuò)過前端開發(fā)的每一個(gè)技術(shù)干貨。 點(diǎn)擊鏈接查看最新前端內(nèi)容,或到各大應(yīng)用市場搜索「 掘金」下載APP,技術(shù)干貨盡在掌握中。

這篇文章提供了十條有關(guān)于提高網(wǎng)頁可訪問性的指導(dǎo)原則,這些原則將保證提高你網(wǎng)站的可訪問性。

引用萬維網(wǎng)(W3C)的創(chuàng)始人@Tim Berners-Lee一句話來說網(wǎng)絡(luò)的力量是它的普遍性。作為靠制作網(wǎng)站謀生的人,我們有責(zé)任確保每個(gè)人都能更好接觸到他們。網(wǎng)頁可訪問性似乎是一項(xiàng)艱巨的任務(wù),但它確實(shí)比聽起來要容易很多。

這十條網(wǎng)頁可訪問性準(zhǔn)則旨在確保所有網(wǎng)站都是通用的。

這不僅能幫助屏幕閱讀器用戶,而且還能改善瀏覽體驗(yàn),以減緩連接速度。我們已經(jīng)按照實(shí)施時(shí)間對我們的指導(dǎo)方針進(jìn)行了排序,讓您清楚地了解在這個(gè)過程中需要付出多大的努力。在你不知所措之前,請相信我的話,這是值得的。

什么是網(wǎng)頁可訪問性

根據(jù)W3C的說法,Web可訪問性意味著每個(gè)人都可以感知、理解、導(dǎo)航、與Web交互,并為Web做出貢獻(xiàn)。在這方面,網(wǎng)站的可訪問性包括所有影響網(wǎng)站訪問的條件,包括視覺、聽覺、物理、語言、認(rèn)知和神經(jīng)功能障礙。

你會在網(wǎng)上找到很多關(guān)于這個(gè)話題的內(nèi)容,如果這個(gè)話題讓你感興趣的話,你應(yīng)該更深入地了解網(wǎng)站可訪問性倡議(WAI)。

考慮到這一點(diǎn),以下是我們提出的十條提高網(wǎng)站可訪問性的建議。

不要依靠顏色

顏色是一種強(qiáng)大的工具,我們經(jīng)常用來表達(dá)情感和在網(wǎng)上交流信息。然而,我們不應(yīng)該把所有的信息都用顏色來傳達(dá),用來表達(dá)我們的用戶的意思和信息。

為什么?

例如,人們普遍認(rèn)為綠色意味著是正確,紅色意味著錯(cuò)誤,但是當(dāng)我們把它作為我們唯一的溝通方式時(shí),會發(fā)生什么呢?


色盲是最常見的視力缺陷之一。全球人口總數(shù)大約有4.5%的人有這方面的缺陷(這個(gè)用戶量已經(jīng)超過了IE11用戶數(shù)量)。

如果我們用戶界面中顯示的重要信息只使用顏色來傳達(dá),那么也意味著全球?qū)⒂?.5%的人受影響。

顏色應(yīng)該只是錯(cuò)誤或確認(rèn)信息的補(bǔ)充,但不能成為我們使用的唯一工具。為了確保我們的重要信息能夠觸達(dá)到所有的用戶,我們應(yīng)該要在表單中添加標(biāo)簽或圖標(biāo)來填充正確的信息。


Caniuse.com提供了一個(gè)非常有趣的解決方案,它提供了一個(gè)替代顏色調(diào)色板的兼容列表:


在設(shè)計(jì)時(shí)檢查顏色的識別力和對比是比較理想的,所以要確保你和你的設(shè)計(jì)團(tuán)隊(duì)有正確的工具。我們強(qiáng)烈推薦使用Sketch的Stark插件,可以幫助你設(shè)計(jì)可訪問性!

不要阻止放大

在響應(yīng)式設(shè)計(jì)的時(shí)代,我們可能犯了一些不負(fù)責(zé)任的錯(cuò)誤。

其中maximun-scale=1.0就是幽靈之一,它讓移動設(shè)備的網(wǎng)頁無法放大。

在歐洲和亞洲,散光影響著30%~60%的成年人,但模糊的視覺會影響到所有年齡和民族的人。

放大的能力不僅僅是一個(gè)WCAG指導(dǎo)方針,而是日常生活中一個(gè)簡化的工具。所以下次你在建立一個(gè)響應(yīng)式網(wǎng)站的時(shí)候,要考慮到視力模糊的人群,比如我們的媽媽。

除了讓用戶可以自由地在移動設(shè)備上縮放之外,還要記得檢查PC端瀏覽器上高達(dá)200%的放大特性。

重新重視alt屬性

不管你制作網(wǎng)站多久,你可能會驚訝地知道下面這些關(guān)于alt屬性的建議:

alt屬性是img元素的一個(gè)強(qiáng)制性屬性,但是alt的屬性值是空的話完全有效。如果圖像是裝飾的或者沒有必要的闡述頁面的內(nèi)容,那么你可以簡單地使用alt=""

屏幕閱讀器會告訴用戶img是一個(gè)圖像,其中alt的值告訴用戶這個(gè)圖片表達(dá)的內(nèi)容

圖像的功能和它的含義一樣的重要,如果你的網(wǎng)站Logo鏈接到你的網(wǎng)站的主頁,那么

的alt的屬性值應(yīng)該是“首頁”,而不是“Logo”

圖像替換文本不僅僅是關(guān)于可訪問性的。有時(shí)候,對于網(wǎng)絡(luò)慢的用戶為了提高瀏覽器的檢驗(yàn)(更快)會禁用網(wǎng)頁的圖像。對于這些用戶群體,你就需要記得給

的alt屬性添加對應(yīng)的屬性值

但不是所有的圖片都是使用img元素,對吧?你可能會用一個(gè)兩個(gè)SVG或者一套SVG圖標(biāo)。

我們?nèi)绾巫屆總€(gè)人都能訪問SVG?幸運(yùn)的是,SVG(Scalable Vector Graphics)標(biāo)準(zhǔn)已經(jīng)覆蓋面已經(jīng)很廣!為了描述我們的SVG,我們可以使用

Longer description

給視頻添加標(biāo)題和子標(biāo)題

這可能是WCAG最麻煩的原則之一,這不是因?yàn)榧夹g(shù)上的困難,而是因?yàn)樗赡苁琴M(fèi)時(shí)的。不過有一些方法可以做到這一點(diǎn):

讓我們以YouTube為例。一旦你在這個(gè)平臺上上傳了一個(gè)視頻,你就可以啟用關(guān)閉標(biāo)題。這些都是自動生成的,可能在某些情況下是不準(zhǔn)確的,這取決于語言、背景噪音或說話人的口音。不過,這些都很容易實(shí)現(xiàn),而且在大多數(shù)講英語的視頻中都能很好的工作

如果我們很難看到百分百準(zhǔn)確的標(biāo)題,很難相信YouTube會有好的復(fù)制,所以我們必須自己寫標(biāo)題,或者雇傭第三方人員來做。如果我們不用任何字幕軟件,或者我們希望我們的社區(qū)幫助我們翻譯內(nèi)容,YouTube將采用最常的副標(biāo)題格式(.srt、.sub和.sbv)以及讓我們在平臺上寫副標(biāo)題。而不讓管理員訪問我們的賬號,這將是非常方便的


也許你不想把YouTube當(dāng)作你的主機(jī)平臺。也許您希望在你的服務(wù)器上使用一個(gè)HTML5視頻。HTML5有一個(gè)標(biāo)簽,可以使用它方便讓你添加你喜歡的標(biāo)題和字幕軟件,你可以使用你喜歡的WebVTT(翻譯FTW)

語義等于可訪問性

font標(biāo)簽,還記得嗎?我希望你不記得,那些是“古時(shí)代”的產(chǎn)物了。

盡管我們有著共同的信念,但語義并不是與生俱來的。自從第一個(gè)HTML頁面誕生以來,他們一直與我們在一起,自那時(shí)候已經(jīng)有了很大的進(jìn)步。有了HTML5標(biāo)準(zhǔn)之后,新的語義標(biāo)簽就被引入到我們的日常使用當(dāng)中。


那么,語義不是僅僅為了SEO嗎?

不一定。當(dāng)您有意識地在

或選擇中使用了

標(biāo)簽時(shí),這也意味著你也故意更改元素的含義,提供了層次結(jié)構(gòu),同時(shí)也構(gòu)建頁面信息的樹形結(jié)構(gòu)。

屏幕閱讀器并沒有忘記這一點(diǎn)。事實(shí)上,語義化是它最有用的武器之一。

請記住,擁有強(qiáng)大的能力會帶來很大的責(zé)任,所以一定要為每個(gè)元素使用合適的語義標(biāo)簽,從

到全新的標(biāo)簽。

使用正確的標(biāo)記

作為一個(gè)后續(xù)的觀點(diǎn),我想討論一些不友好和有爭議的地方。

Time vs. Datetime

time元素顯示了日期格式、時(shí)區(qū)的很多類型和使用ISO 8601標(biāo)準(zhǔn)來表示日期和時(shí)間的時(shí)間。

datetime是一個(gè)可選屬性,可以幫助表示的內(nèi)容。讓我們看看一些例子:

14:54 Hours and minutes

2018-06 Year and month

-03:00 Time zones

2h 32m Harry Potter 2 Duration

CSSConf Argentina took place on August 7th

del 和 ins

Web不斷變化,但沒有必要讓這些變化被忽視。我們可以將ins和del這樣的HTML標(biāo)簽與datetime屬性結(jié)合在一起使用。

ins元素表示添加了一個(gè)文檔:

Icecream

Candy

Pasta

del元素表示刪除一個(gè)內(nèi)容:

Rewatch Harry Potter 8

Cry because ____ dies.

Write article

Order room

button vs.

對于button和標(biāo)簽,我們什么時(shí)候使用更合適呢?

我們一起來看看。

元素的意思是鏈接一個(gè)文件或打開一個(gè)新標(biāo)簽或當(dāng)前的鏈接。然而,每當(dāng)我們希望觸發(fā)一個(gè)Hamburger菜單或圖片畫廊之類的動作時(shí),這個(gè)標(biāo)簽就有點(diǎn)不理想。button元素對于這些情況就更為比較適合,而且通??梢杂肑avaScript實(shí)現(xiàn)。

此外,button標(biāo)簽很容易與input type="button"混淆,但他們的區(qū)別在于前者能夠獲取更多的內(nèi)容(文、圖像加文或僅圖像)。

當(dāng)使用button標(biāo)簽時(shí),有兩件事情需要考慮:

首先,如果button的內(nèi)容不夠明確(例如,在關(guān)閉按鈕中使用X),我們必須添加一個(gè)aria-label屬性來幫助解釋其功能。

X

其次,如果添加href屬性是意義的(比如搜索組件或lightbox gallery),那么我們不仿使用一個(gè)a標(biāo)簽和使用JavaScript來覆蓋鏈接行為。如果沒有啟用JavaScript,使用帶有href標(biāo)記的圖像庫將優(yōu)雅地降級。

必要是使用role

為了告訴屏幕閱讀器用戶,我們的鏈接觸發(fā)了一個(gè)動作,實(shí)際上它不是一個(gè)普通的標(biāo)簽,使用標(biāo)簽時(shí),我們必須給他添加一個(gè)role屬性。

但是要小心。

當(dāng)你編寫你的JavaScript時(shí),你不僅需要在點(diǎn)擊時(shí)調(diào)用你的函數(shù),還需要在用戶按下空格鍵時(shí)調(diào)用你的函數(shù)。這是必要的,因?yàn)橛糜诎粹o的行為不同于用于鏈接的行為,用戶應(yīng)該能夠觸發(fā)這些命令中的任何一個(gè)操作。

Button

function handleBtnClick(event) {

// Do something

}

function handleBtnKeyPress(event) {

// Check to see if space or enter were pressed

if (event.keyCode === 32 || event.keyCode === 13) {

// Prevent the default action to stop scrolling when space is pressed

event.preventDefault();

// Do something

}

}

有關(guān)于這方面更多的信息可以在MDN上了解。

記住,除非你打破規(guī)則,否則通常不需要aria role規(guī)則,比如上面的示例。HTML語義元素已經(jīng)應(yīng)用了默認(rèn)的role,比如nav標(biāo)記表示的是導(dǎo)航,標(biāo)簽表示的是鏈接等等。這意味著當(dāng)我們希望更改這些默認(rèn)值時(shí),role屬性只是必需的。

隱藏元素

使用HTML和CSS有一些方法可以隱藏東西。下面的列表將幫助你找到每一種情況的好選擇:

方法行為屏幕閱讀器行為兼容性

CSS: visibility:hidden;從視覺中隱藏元素,但其原始空間仍然被占用(很像opacity:0)不可讀到處可用(兼容性好)

CSS: display:none;從視覺中隱藏元素,它的原始空間丟失,下一個(gè)元素將取代它的位置不可讀到處可用(兼容性好)

HTML5: hidden屬性類似于display: none;不可讀IE11+

aria-hidden = "true"內(nèi)容會顯示在瀏覽器中,但通過技術(shù)不會傳遞給用戶不可讀IE11+

CSS: .visuallyHidden類從視覺中隱藏元素,并從工作流中刪除它可讀到處可用(兼容性好)

如果你想隱藏元素,但仍然讓屏幕閱讀器可以知道它們,那么最后一個(gè)選項(xiàng)是最好的選擇。

這在表單的label或Skip-to-content鏈接中非常有用。visuallyHidden類是一個(gè)CSS代碼,它什么你收藏,因?yàn)槊總€(gè)項(xiàng)目都容易用到它。是的,如果你愿意,你可以改名字(我的建議是.pottersCloak)。

.visually-hidden {

position: absolute !important;

clip: rect(1px 1px 1px 1px); /* IE6, IE7 */

clip: rect(1px, 1px, 1px, 1px);

padding:0 !important;

border:0 !important;

height: 1px !important;

width: 1px !important;

overflow: hidden;

}

body:hover .visually-hidden a,

body:hover .visually-hidden input,

body:hover .visually-hidden button {

display: none !important;

}

遵循Web可訪問性標(biāo)準(zhǔn)

Web可訪問性標(biāo)準(zhǔn)和指南在這里可以給我們提供很強(qiáng)的幫助。

本文前面的所有要點(diǎn)都是button是如何工作的?我們應(yīng)該什么時(shí)候使用它?display:none和hidden屬性的區(qū)別是什么?

首先,它可能是非常枯燥的,但W3C標(biāo)準(zhǔn)和WCAG指南非常有用,它們還有非常強(qiáng)的意義。去吧,在他們當(dāng)中提供了很多可用的信息。我向你保證,你將發(fā)現(xiàn)你從未接觸的代碼和實(shí)踐!

Audit and review

一旦你應(yīng)用到了所有這方面的知識,那就到了測試它的時(shí)候了。以下提供了一些工具測試你的網(wǎng)站可訪問性:

ChromeVox

Accessibility Developer Tools for Chrome

Color Filter

W3C Validator

A11Y Compliance Platform

WAVE

Aerolab的可訪問性經(jīng)驗(yàn)

我們試著養(yǎng)成經(jīng)常測試的工作習(xí)慣。我們的下一個(gè)產(chǎn)品應(yīng)該總是比上一個(gè)更好。雖然我們有時(shí)候會犯錯(cuò),但我們會不斷地去改進(jìn),更不用說從每個(gè)挑戰(zhàn)中學(xué)習(xí)一些東西了。

我們希望我們的產(chǎn)品能為用戶提供最好的體驗(yàn),這就是為什么我們逐漸開始將可訪問性標(biāo)準(zhǔn)添加到我們的工作流程中。

我們還有很長的路要走,還有些要改進(jìn)的空間,但我們很高興選擇了這條路。

我們?yōu)閄apo所做的登錄頁面就是我們?nèi)绾谓o網(wǎng)站添加可訪問性標(biāo)準(zhǔn)的一個(gè)例子,你可以從這個(gè)例子中查到這方面的使用代碼:


總結(jié)

網(wǎng)站可訪問性并不是那么容易就能實(shí)現(xiàn),但如果你能把它變成你日常工作的一部分(而不是最后才來檢查),隨著時(shí)間的推移,它的實(shí)現(xiàn)和測試就會變得很容易。

本文題目:如何提高網(wǎng)頁設(shè)計(jì)的可訪問性
文章源于:http://www.rwnh.cn/news15/162965.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)微信小程序、App設(shè)計(jì)、建站公司、App開發(fā)搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
商洛市| 桐城市| 定日县| 霍山县| 青田县| 郑州市| 榆林市| 句容市| 微博| 图们市| 新津县| 巩义市| 金溪县| 禹州市| SHOW| 德惠市| 涿鹿县| 东乡县| 武鸣县| 佛山市| 阿拉善左旗| 宁城县| 黄石市| 通州市| 射洪县| 安阳市| 达孜县| 海原县| 同仁县| 兴国县| 双城市| 轮台县| 惠州市| 德钦县| 铜陵市| 青州市| 边坝县| 濮阳县| 新乡市| 宁阳县| 乌兰浩特市|