利用CSS改善網(wǎng)站可訪問性
作者: BUILDER.COM 來源: www.BUILDER.COM 類型: 翻譯
最近,我不得不對(duì)我的一個(gè)客戶的舊網(wǎng)站進(jìn)行更新,使得它能夠達(dá)到可訪問性的標(biāo)準(zhǔn)。對(duì)三四年前的舊代碼進(jìn)行挖掘的想法根本沒有吸引力,主要是因?yàn)槲以?jīng)使用的很多編程慣例已經(jīng)不再適用,特別是從可訪問性上來講。我曾經(jīng)使用絕對(duì)的字體大小,固定的頁面寬度和表格來做版面設(shè)計(jì)和空間分配。
像那時(shí)建構(gòu)的很多網(wǎng)站一樣,我的客戶的網(wǎng)站使用了Cascading Style Sheets (CSS)來格式化文本。它沒有使用任何CSS的更加強(qiáng)有力的版面設(shè)計(jì)功能,也沒有允許HTML設(shè)備獨(dú)立,而這是CSS可訪問性的主要優(yōu)點(diǎn)之一。
問題是如何出現(xiàn)的?
在我概述使網(wǎng)站更加具有可訪問性的方法之前,了解現(xiàn)今眾多的訪問性問題的起因也許是很有幫助的:
對(duì)HTML膚淺的理解:在1990年代的互聯(lián)網(wǎng)大發(fā)展時(shí)期中,所有人都開始建構(gòu)網(wǎng)站。WYSIWYG編輯器使得幾乎每個(gè)人都可以很容易地建構(gòu)一個(gè)網(wǎng)站,而不用費(fèi)心去學(xué)習(xí)HTML。但不幸的是,這種在使用上的便利帶來了一些蹩腳的代碼,對(duì)可訪問性造成了妨礙。
HTML在設(shè)計(jì)方面的局限性:開發(fā)者和設(shè)計(jì)者經(jīng)常會(huì)故意錯(cuò)用HTML標(biāo)簽,特別是<table>標(biāo)簽,來克服HTML在版面和設(shè)計(jì)上的局限性。這種設(shè)計(jì)方式也會(huì)帶來妨礙可訪問性的代碼。
什么使得CSS更具有訪問性?
CSS在1996年出現(xiàn),用來解決上述的問題。通過使用CSS,你可以將一個(gè)HTML文件的內(nèi)容與有關(guān)它的表現(xiàn)形式或風(fēng)格的信息分離開來。這就使你可以應(yīng)用準(zhǔn)確的格式化并達(dá)到想要得到的版面設(shè)計(jì),而無需使用可能會(huì)讓屏幕閱讀器和專門的瀏覽器軟件產(chǎn)生困惑的HTML代碼。
例如,雖然HTML表格是用來排列表格式數(shù)據(jù)的,但他們也經(jīng)常被用來排列對(duì)齊一個(gè)頁面上的元素的。但是閱讀器和例如語音合成器的軟件要求有效的HTML代碼。因此當(dāng)他們遇到一個(gè)頁面錯(cuò)誤地使用了諸如一個(gè)表格的元素,產(chǎn)生的結(jié)果就會(huì)讓使用者感到莫名其妙。
CSS的另一個(gè)可訪問性的優(yōu)點(diǎn)就是它允許使用者定義他們自己的風(fēng)格單,這個(gè)風(fēng)格單可以與網(wǎng)站的風(fēng)格單共同工作。因此,例如一個(gè)使用者可以設(shè)定,所有通過<p>標(biāo)簽定義的文本都應(yīng)該是1.5em Arial,即使這個(gè)網(wǎng)站的風(fēng)格單表示它應(yīng)該是18px Verdana Bold。
要注意用戶定義的風(fēng)格只有在用戶的風(fēng)格名稱與HTML頁面中的標(biāo)簽相符時(shí)才會(huì)起作用,這是很重要的。這就將確保兼容性的責(zé)任交到了開發(fā)者的手中。例如,如果用戶的風(fēng)格單指定<p>標(biāo)簽應(yīng)顯示1.5em Arial文本,但是HTML頁面并不使用<p>標(biāo)簽來從風(fēng)格單中調(diào)用一個(gè)風(fēng)格(也許它使用<font class=”bodytext”>),用戶對(duì)于<p>標(biāo)簽定義的風(fēng)格將會(huì)被忽略。因此要確保你對(duì)你的標(biāo)題和段落使用標(biāo)準(zhǔn)的HTML標(biāo)簽,這將減少用戶定義的風(fēng)格單被忽略的機(jī)會(huì)。
開始
如果你是從頭開始建構(gòu)一個(gè)新的網(wǎng)站,那么通過CSS來改善可訪問性就會(huì)很容易。但你仍然可以輕松地將現(xiàn)有的網(wǎng)站轉(zhuǎn)變?yōu)镃SS形式。
步驟1:檢查現(xiàn)有代碼
為了更好地說明,我將用在表A中這個(gè)簡(jiǎn)單的HTML代碼來代表一個(gè)使用CSS的頁面。這個(gè)例子假設(shè)頁面還沒有使用CSS,不過你也可以使用相似的方法來評(píng)價(jià)一個(gè)基于CSS的站點(diǎn)。主要的不同點(diǎn)就是大多數(shù)的改變將發(fā)生在CSS文件中而不是HTML文件中。
步驟2:從HTML中去掉所有特殊風(fēng)格標(biāo)簽
要在這個(gè)頁面中加入CSS,我首先需要去掉所有要控制內(nèi)容表現(xiàn)的標(biāo)簽。樣本代碼使用了字體標(biāo)簽來定義字體外觀,風(fēng)格和顏色。去掉這些元素使得樣本代碼如表B所示。
步驟3:從HTML中去掉并替換任何錯(cuò)用的標(biāo)簽
現(xiàn)在我要去掉任何錯(cuò)用的HTML標(biāo)簽。在樣本代碼之中,一個(gè)表格用來在頁面的內(nèi)容創(chuàng)建一個(gè)15象素的邊緣,代碼還使用<br>標(biāo)簽來創(chuàng)建段落。
在我去掉表格和<br>標(biāo)簽之后,我將他們替換為適當(dāng)?shù)臉?biāo)簽。例如,我對(duì)頁面標(biāo)題使用<h2>標(biāo)簽,用<p>標(biāo)簽來顯示段落。使用這些標(biāo)準(zhǔn)HTML標(biāo)簽使得之后的CSS的應(yīng)用變得非常容易,而且與用戶定義的風(fēng)格單更加兼容,F(xiàn)在的樣本代碼如表C所示。
步驟4:建構(gòu)一個(gè)CSS文件來覆蓋風(fēng)格信息
現(xiàn)在我已經(jīng)從HTML文件中去掉了所有風(fēng)格信息,我需要將這些信息轉(zhuǎn)移至一個(gè)CSS文件中。CSS文件僅僅是一個(gè)存為.css擴(kuò)展名的文本文件,因此它可以在任何一個(gè)文本編輯器中進(jìn)行創(chuàng)建。我使用的是Dreamweaver MX。
為了使在HTML中應(yīng)用CSS文件變得容易,我使用了名為p和h2的風(fēng)格來對(duì)應(yīng)標(biāo)準(zhǔn)HTML標(biāo)簽。我使用了可變的字體大小,使得用戶可以輕松地在瀏覽器中增大或縮小字體大小。使用絕對(duì)大小可以防止瀏覽器對(duì)字體進(jìn)行大小的調(diào)整(除了Netscape 6或以后的版本之外,它將不考慮絕對(duì)字體大。N疫在需要的地方指定了字體的種類,重量和顏色。
要重新產(chǎn)生由HTML標(biāo)記代碼創(chuàng)建的版面,我需要將<p>和<h2>標(biāo)簽設(shè)置寬度為780象素。然而,由于我們的目的是將可訪問性最大化,因此我將去掉寬度設(shè)置使得頁面能符合瀏覽器窗口的大小。而且我將讓HTML頁面使用瀏覽器的缺省邊緣,而不是用原始代碼的<table>標(biāo)簽來重新創(chuàng)建15象素的空白,這也使得其它例如打印機(jī)等的設(shè)備來使用它的缺省邊緣設(shè)置。
表D顯示了我創(chuàng)建的CSS文件。我將它命名為Mystylesheet.css并將它放置在網(wǎng)站根目錄下的一個(gè)風(fēng)格文件夾之中。
步驟5:在HTML文件上附加新的風(fēng)格單
在創(chuàng)建了CSS文件之后,我在HTML文件中插入了它的風(fēng)格。因?yàn)镠TML文件已經(jīng)包括了所有在CSS文件中引用的標(biāo)簽(<h2>和<p>),所以我只需要連接到HTML文件頭部的風(fēng)格單上就可以了。HTML文件從CSS文件中獲得風(fēng)格并將他們應(yīng)用到<h2>和<p>標(biāo)簽當(dāng)中,如表E所示。
步驟6:驗(yàn)證代碼
整個(gè)過程的最后一個(gè)步驟就是驗(yàn)證HTML代碼的可訪問性。如果你對(duì)于CSS來說是個(gè)新手的話,你最好對(duì)CSS代碼也進(jìn)行驗(yàn)證。有很多種的工具都可以幫你對(duì)二者進(jìn)行驗(yàn)證。
我使用Dreamweaver MX來檢查我的樣本代碼的可訪問性。你可以通過在文件菜單中選擇Check Page然后選擇Check Accessibility來實(shí)現(xiàn)。任何錯(cuò)誤或是警告都會(huì)顯示出來,還包括出現(xiàn)位置的行號(hào)以及對(duì)問題簡(jiǎn)要的解釋。你可以在Dreamweaver MX的Reference工具中找到更多關(guān)于這些錯(cuò)誤和警告的內(nèi)容。你只要從Dreamweaver的Windows菜單中選擇Reference然后從Book菜單中選擇UsableNet Accessibility Reference就可以了。
此外,World Wide Web Consortium (W3C)提供了超過30個(gè)的可訪問性評(píng)估工具的鏈接。W3C還提供了針對(duì)HTML和CSS的基于Web的免費(fèi)驗(yàn)證器。
可訪問性和簡(jiǎn)單的管理
雖然這里給出的例子是很簡(jiǎn)單的,但它說明了利用CSS使你的站點(diǎn)更加具有可訪問性是非常容易的。而且,對(duì)于CSS的使用不止這一個(gè)優(yōu)點(diǎn)而已。
基于CSS的網(wǎng)站要比僅僅只有HTML的網(wǎng)站要好管理得多。CSS文件中的風(fēng)格上的變化可以應(yīng)用到整個(gè)網(wǎng)站中而不需要改變網(wǎng)站中任何的HTML文件。而且CSS的使用縮小了每一個(gè)HTML文件的整體文件大小,因?yàn)樗械娘L(fēng)格信息都存儲(chǔ)在了CSS文件之中。
因此如果你想要改善可訪問性的話,將其視為一個(gè)機(jī)會(huì),而不是一個(gè)障礙。要了解更多關(guān)于CSS和可訪問性的內(nèi)容,你可以去看一看World Wide Web Consortium中的Web Accessibility Initiative (WAI)。
出處:builder.com
責(zé)任編輯:藍(lán)色
◎進(jìn)入論壇網(wǎng)頁制作、網(wǎng)站綜合版塊參加討論
|