網頁親和力工具列 2.0 繁體中文版

網頁要做的好不只是畫面漂亮就好,還要考慮到各種不同上網方式的人,例如說身心障礙人士,政府所建立的無障礙網路空間服務網就已經積極推廣無障礙網路的觀念多年,也提供許多檢測的工具,只可惜成效不盡理想。

在國外就有個網頁親和力工具列 ( for IE ),功能也蠻多的,很適合用來開發無障礙網頁,這軟體日前出到 2.0 版有一段時間了,直到前幾天才釋出繁體中文版,有興趣的可以去下載回來玩玩看。

以下是工具列的圖示,每一個按鈕下都還有好多功能:

 

 

相關連結

 

  

此文章由 will 發表於 2008/3/27 上午 12:02:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Accessibility | 介紹好用工具

標籤:

收藏:

一個常用又不知道是做什麼用的 META 設定

這段 <META> 幾乎在所有網頁都會出現,但你真的知道這段 meta 是用來定義什麼的嗎?

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">

我想大多數的人都是「望文生義」,「以為」這段 HTML 是用來定義該頁面的編碼字集(Character Set)!

其實這樣的定義也「不算錯」啦,只是說明的不精確,嚴格來講算是對一半!

正確來說,這段 META 是定義「網頁送出的編碼字集」,而不是用來定義「該網頁應該顯示的字集」!

如果你要定義該網頁「顯示」的字集,最正確的用法應該是在 HTTP Header 中定義 Content-Type 才是!

但為什麼要在頁面中宣告 Content-Type 這個 META Tag 呢?!就讓我娓娓道來吧!

就因為網頁的編碼字集(Character Set)太混亂了,造成很多字集轉換的問題,現在大家都用 UTF-8 當作文件的字集,已經簡化不少問題了,但是在早期卻不是這樣。

想當年(也沒有很久啦)我們大家都是用 Big5 當作中文字集,但是如果有人在網頁上輸入「非 Big5 字集」的文字 (如:日文、簡體字)會怎麼樣呢?通常有兩種結局:

1. 輸入的文字變成問號 ( ? )

2. 輸入的文字變成 HTML Entities(也就是像 &#26356; 這種格式)

我想變成問號的居多吧!(相信很多人會莞爾一笑)

那就是因為你沒有設定正確的 META Tag!!!那設定這個 META Tag 就很重要了!

如果你的網頁是用 Big5 編碼,而 META 設定為<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">〕的話,代表從表單送出的文字會以 Big5 編碼,如果表單中輸入的文字不在 Big5 編碼範圍內的話,就會改以 HTML Entities 送出!

如果你沒有設定這個 META 的話,瀏覽器就會用 UTF-8 的字集送出!如果你的 Server 端程式或資料庫無法處理這類 UTF-8 編碼文字的能力的時候,就會變成問號!

但是我也看過許多網站雖然有設定正確的 META,不過卻沒有正確的處理 HTML Entities,當這些 HTML Entities 要顯示在網頁上的時候,卻又被 HTML Encode 過一遍,反而造成使用者的困擾,實在很可惜!

我在 MSDN 上有找到一個網頁說明這個原理,有空的人可以看一下:

Character Set Recognition
http://msdn2.microsoft.com/en-us/library/Aa752010.aspx

  

此文章由 will 發表於 2007/11/11 下午 09:40:00

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: Accessibility | Web

標籤: , , , ,

收藏:

如何讓 Lynx 純文字瀏覽器讀取 UTF-8 的 ASP.NET 網頁

這個問題困擾我好久,但是現在終於被我給解決啦,想想也真是功德一件,自己蠻開心的! Laughing

問題說明

到目前為止,好像還沒有人可以用 Lynx 這套純文字瀏覽器讀取用 UTF-8 編碼的網頁,因為這套軟體實在太冷門,所以至今也沒有人幫忙解決這個問題。

需求 for 身心障礙同胞

在國內卻有許多身心障礙同胞使用 Lynx 這套軟體,最近因為我們公司正在積極建置一個無障礙的網站,光是想到 UTF-8 編碼的網頁無法讓這些身心障礙同胞使用到我們製作的網站服務,就覺得內心實在有股衝動想趕快解決這個問題!

需求 for 製作無障礙網站的 ASP.NET 2.0 開發人員

我想大多數 ASP.NET 開發人員不懂 Linux 作業系統,唯一能使用 Lynx 軟體測試的方式,就是在 Windows 主機上使用 Cygwin + Lynx 軟體進行測試,不過我今天研究出來一個最簡單、最容易、最省時省力的方式,讓你的 ASP.NET 網站伺服器看到使用 Lynx 上網的瀏覽者,就改以 BIG5 的方式回應輸出編碼字集!

解決方案

在 ASP.NET 2.0 新增了一個特殊的資料夾,叫做 App_Browsers,ASP.NET 會使用這些檔案來辨識個別瀏覽器並判斷它們的功能與應該回應的方式。

你只要在你的 Web Application 根目錄建立這個目錄,並建立一個 Lynx.browser 檔案,檔案裡面的內容如下:

[code:html]
<!--     You can find existing browser definitions at     <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers -->
<browsers>
  <browser id="Lynx" parentID="Default">
    <identification>
      <userAgent match="Lynx/\d+\.\d+" />
    </identification>
    <capture>
      <userAgent match="Lynx/(?'version'(?'browserMajorVersion'\d+)\.(?'browserMinorVersion'\d+))" />
    </capture>
    <capabilities>
      <capability name="browser" value="Lynx" />
      <capability name="version" value="${version}" />
      <capability name="majorVersion" value="${browserMajorVersion}" />
      <capability name="minorVersion" value="${browserMinorVersion}" />
      <capability name="preferredRequestencoding" value="big5" />
      <capability name="preferredResponseencoding" value="big5" />
    </capabilities>
  </browser>
</browsers>
[/code]


夠簡單吧!這要照這樣子做,你的網站只要遇到 Lynx Browser 上網,馬上就可以「自動」變成 Big5 編碼摟! 真心感謝 ASP.NET 這個漂亮的 Web 開發架構!

注意事項

  • 如果在你的網頁中有使用到以下這個 meta 標籤,請將他移除:

    [code:html]
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    [/code]

  • 並將以下的程式碼加到你的 MasterPage 或 Page 的 Code Behind 的 Page_Load 事件中:

    [code:c#]
    public partial class MasterPage : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            HtmlMeta metaContentType = new HtmlMeta();
            metaContentType.HttpEquiv = "Content-Type";
            if (Request.Browser.Browser == "Lynx")
            {
                metaContentType.Content = "text/html; charset=big5";
            }
            else
            {
                metaContentType.Content = "text/html; charset=utf-8";
            }
           
            Page.Header.Controls.AddAt(0, metaContentType);
        }
    }
    [/code]

  • 另外說明一下,如果你的網頁中的外部載入檔案 ( *.css 或 *.js ) 的話,如果檔案是用 UTF-8 編碼且內容中有非 ASCII 的字元,也有可能在使用 big5 瀏覽時造成網頁發生問題!但 Lynx 本來就不支援 CSS 與 JavaScript,所以也沒這個問題啦!但誰知道以後的 Lynx 版本會不會支援這些功能!

參考資料

  

此文章由 will 發表於 2007/10/28 下午 08:45:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: ASP.NET | Accessibility

標籤: , , , , , ,

收藏: