實用創作流程

SVG 標誌無障礙:給正確的元素命名

象牙白雕塑環投下炭灰色影子,旁邊放著一顆琥珀色小珠
抽象編輯插畫;下文使用真實產品截圖展示操作。

咖啡館的杯子標誌有三種用途:單獨標識店名、裝飾可見品牌文字,或出現在首頁連結裡。每個副本都加同樣的標題,可能只讓介面重複,並不能幫助訪客理解控制元件。

虛構的 Cedar Cup 示例在三種真實 HTML 情境中使用同一路徑。Ciyo 建立標記並渲染頁面,我們再獨立開啟保留檔案,核對瀏覽器暴露的圖片與連結名稱。這是針對命名的示例,不是螢幕閱讀器認證。

先判斷標誌在當前情境中的作用

從所在頁面開始判斷,而不是隻看 SVG。標誌是不是唯一的品牌標識?可見文字是否已經說出店名?整個區域是否是連結?這些答案決定哪個元素應承載資訊。

我們準備一個 viewBox 為 0 0 120 100、填色為 #7A4A2A 的杯子路徑。三個示例都保留該幾何,只調整名稱、隱藏裝飾內容和連結文字,沒有改變品牌繪圖。

複製這段檔案工作區提示詞
保持現有 SVG 路徑不變。製作真實 HTML,展示名為 Cedar Cup 的獨立資訊標誌、可見 Cedar Cup 文字旁的裝飾副本,以及名為 Cedar Cup home、含裝飾圖示的首頁連結。使用合適的 title、role 與 ARIA 標記。渲染並檢查頁面,核對暴露名稱和鍵盤焦點,回傳準確的 HTML。

給獨立的資訊標誌命名

獨立示例使用 role="img",透過 aria-labelledby 引用第一個子元素 title。標題為 Cedar Cup,瀏覽器暴露一張同名圖片,表達品牌身份而不必描述杯子的裝飾幾何。

為每個相關內聯例項使用唯一的 title ID。元件在頁面重複時若複製相同 ID,名稱可能引用錯誤元素。保留的示例只含一個資訊副本,並指定明確 ID。

隱藏重複的裝飾副本

可見文字已經寫著 Cedar Cup 時,旁邊的杯子在本例中屬於重複資訊,使用 aria-hidden="true" 和 focusable="false"。品牌身份由文字提供,圖形仍可見。

不要把這種處理應用於提供額外必要資訊的標誌。不能因為它看起來像裝飾例子,就隱藏讀者仍然需要的資訊。

儲存的 HTML 中實際使用的情境
情境名稱來源SVG 處理
獨立標誌引用的標題:Cedar Cuprole="img"
品牌文字旁的標誌可見 Cedar Cup 文字aria-hidden="true"
首頁連結可見 Cedar Cup home 文字連結內裝飾 SVG
完整 Ciyo 畫布,顯示原始杯子、前後程式碼對照板和三情境瀏覽器渲染
Ciyo 保留相同杯子路徑,準備三種不同的命名情境。

為首頁連結提供有意義的名稱

連結的可見文字是 Cedar Cup home。其中 SVG 為裝飾,因此控制元件名稱來自文字。示例連結到本地 #home,真實網站應使用實際首頁地址。

我們在獨立開啟的示例裡按 Tab,焦點落在首頁連結上,瀏覽器暴露的名稱為 Cedar Cup home。裝飾 SVG 沒有再增加圖片條目,這是這份頁面中可觀察的有限結果。

實際瀏覽器顯示資訊標誌、裝飾標誌與首頁連結,焦點位於首頁連結
獨立核對保留 HTML 的瀏覽器結果,不代表 NVDA、JAWS 或 VoiceOver 審計。

檢查實際發布頁面的名稱

開啟儲存的 HTML,檢查無障礙樹、鍵盤順序與可見標籤。插入實際頁頭後還要檢查:外層按鈕、重複品牌文字或其他連結,都可能改變使用者遇到的內容。

SVG title 不能代替有意義的控制元件文字。功能元素應明確表達用途。情境不同,就選擇同樣清楚的可見標籤,或經過仔細核對的可訪問名稱,不要脫離上下文照抄。

在交付中說明使用情境

把原始 SVG、三情境示例和說明交給開發者,指出哪個例項應傳達資訊,哪個應當裝飾。要求在最終頁面及適合受眾的輔助技術中檢查。

顏色和名稱應分別核對。名稱正確的標誌仍可能消失在深色背景裡;清晰可見的標誌也可能有無用的連結名稱。

實用問答

每個 SVG 標誌都應有 title 嗎?

按情境選擇。本例為獨立品牌標識加標題,並隱藏冗餘的裝飾副本。

SVG title 足以為連結命名嗎?

應明確命名功能元素。本例以可見 Cedar Cup home 文字作為連結名稱。

測試了所有螢幕閱讀器嗎?

沒有。我們核對了瀏覽器暴露的名稱和鍵盤焦點;最終介面還應使用合適的輔助技術檢查。

在真實使用情境中檢查一個標誌

讓 Ciyo 製作資訊、裝飾與連結示例,再把適合的標記用於經過檢查的網站實現。