有了網絡交互這一最基礎的要素,用戶可以通過點擊鏈接和表格提交的方式來與網頁交互。這一交互性開創了客戶端(通常是網絡瀏覽者)與服務器之間的對話(客戶端發送數據和頁面請求給服務器,服務器收集數據并返還至頁面)。一旦服務器發送一個頁面,所有對話都將終止,直到客戶端提出另一請求。用戶對頁面的處理是非實質的,除非點擊了另一個鏈接或是提交了另一個表格。
這一交換類型并未趨向于我們在軟件應用程序中已逐漸習慣的動態交互類型,在后者中,用戶行為會獲得立即的反饋,且帶有上下文。例如,現代的拼寫檢查會出現在聯機文檔中,而不是在附屬窗口中逐個地顯示單詞。
一個有效的用戶界面會通過一項任務引導用戶,隨時提供反饋以避免發生錯誤,而不是讓用戶在完成之后再糾正錯誤。這一在線引導類型很難通過標誰的網絡技術來實現。拿必填項來說,在一個標誰的網絡環境中,用戶提交表格,服務器隨后會檢查數據,如果該項未填寫,那么服務器會將表格返還給用戶讓其補充完整。如果用戶在提交之前未找到所有必填項,那么這一動作將會一直重復。在一個更為動態的界面中,表格字段在完成的時候就生效了,而提交按鈕僅在所有選項都填寫完成時才會被激活。
在網絡中,這一類型的客戶端交互僅在有擴展(add-on)技術支持時方才可能實現,諸如Flash和JavaScript.當今的絕大多數瀏覽器都支持JavaScript,絕大多數瀏覽器安裝程序中也包含了Flash的插件。不過,這些技術受支持的范圍不及標誰的HTML廣泛。用戶可以在他們的瀏覽器預設中禁用JavaScript,并且有些設備并不支持JavaScript和Flash;其他的設備提供支持但實現效果不同。盡管客戶端腳本語言為交互提供了很多益處,但是我們無法排他地依賴它來提供必要的交互。為了實現通用可用性,在這些技術不可用或禁用時,也要保證使用客戶端腳本語言的網絡應用程序能發揮作用。
Ajax
Ajax,即Asynchronous JavaScript和XML的縮寫,這是一項提供動態界面元素和動態頁面內容的技術,并頻繁地用于創建網絡應用程序。有了Ajax,頁面可以發送小字節數據的請求來回應用戶的動作(例如,在地圖上進行放大),同時數據會顯示在頁面的一個區域而不用下載整個網頁。Ajax之所以擁有性能優勢是因為每個用戶的動作并不要求重新裝載整個頁面。Ajax還因為支持動態和回應性的用戶界面而提供了更多的交互。
程序和表格與傳統的軟件應用程序已經開始了競爭Ajax的不足在于其對JavaScript的依賴性,我們已經鑒定了JavaScript的風險所在,即沒有人能保障其可以在客戶端的瀏覽器上運行。并且,JavaScript 的實現效果因不同的瀏覽器而有所不同,這使得大量的跨平臺檢查成為了任何Ajax項目的一個關鍵組成部分。除此之外,搜索引擎無法誰確索引帶有動態內容的頁面,因為對用戶隱蔽的內容也會對搜索引擎軟件隱蔽。最后,Ajax,更通常的叫法是動態界面,對可訪問性提出了挑戰。
可訪問性
在網絡的早期,當我們從基于文本的網頁進人到圖形網頁時,我們改善了可用性但犧牲了通用可用性。因為文本是可機讀的,因此它可以被廣大的用戶和設備訪問。圖形是非機讀的,使用了圖形和復雜布局的網頁增加了訪問的難度。如今,當我們從簡單的鏈接和表格上升到復雜且動態的界面時,我們看到的是一個與交互類似的趨勢。盡管這些界面可能更具有可用性且更高效,但它們要實現針對所有用戶的可訪問性會更難。屏幕閱讀軟件的用戶或許并不知曉動態內容已經下載到頁面。鍵盤用戶或許無法使用界面工具。一些“瘦”客戶端,諸如PDA和移動電話,沒有馬力來運行這些技術。HTML和其他的W3C技術旨在使用諸如替代性文字和回退(fallback)功能來支持可訪問性設計,然而,很多插件(add-on) 技術在設計的過程中并未考慮到可訪問性。
好消息是,W3C正努力創建標準來支持同時具有動態性和可訪問性的界面的發展?稍L問性富因特網應用程序(Accessible Rich Internet Application, ARIA)計劃創建一種標注 應用程序界面的規范,以便所有類型的客戶端一從標準的瀏覽器到屏幕放大鏡再到屏幕閱讀器都能以某種方式幫助用戶訪問和操作動態界面元素。ARIA和Adobe在努力實現可訪問的Flash, HTML和XHTML也在不斷努力,這些技術將產生多種工具,我們可用來創建可訪問的動態界面。與此同時,我們擁有標準的工具,隨時允許我們創建可訪問且有效的網站建設Web應用程序。