2012-05-04 34 views
0

我需要創建符合508的代碼,並且遇到沒有標題的表的問題。每行只包含左列中的類別名稱,右列中包含值。所以我想我最初的問題是 - 這是一個數據表嗎?它應該以不同的方式代表,如列表?如果它是一個有效的數據表,我是否必須爲每列創建標題名稱?這些信息是一種特殊的格式,從來沒有列頭,所以我甚至不知道客戶會想要這些,但我想知道如果我需要告訴他們,他們必須在那裏,以便嚴格遵守508 ?最後,是否有一種方法可以讓那些使用屏幕閱讀器的用戶訪問這些標題,但普通用戶看不到?508符合數據表沒有標題?

+0

聽起來就像它是一張桌子一樣,你的「標題」實際上是你的左欄 - 不知道如何使用帶標題的表的標準標記獲得視覺效果。 我以爲你可能會嘗試一個定義列表,但是這對於你所描述的內容來說並不完全正確。 –

+0

@布萊恩,啊,我也沒想過。不,它不是一個真正的定義列表,但是,如果我可以將標題的樣式設置爲只在第一列完成,那就可以解決問題。但我從來沒有聽說過這樣做,儘管它似乎應該是一個選項... –

+1

你有沒有想過也許使用一些不顯眼的JavaScript來嗅出屏幕閱讀器,並做一些DOM更換?對於視力受損的用戶,刪除現有的表格並將其替換爲具有包含左列值的標題的表格可能是有意義的。不是很華麗,但它對於屏幕閱讀器而言在語義上是正確的,而對於其他用戶而言,它仍然在視覺上是正確的。 –

回答

2

是的,它是一個結構非常簡單的數據表,但依然如此。將其表示爲dl是一種可能性,但會引發各種格式問題,並且可能不易訪問(因爲瀏覽工具可能對HTML表格有特別的支持,幾乎不適用於dl)。

508 rules中的條款(g)說:「行標題和列標題應爲數據表標識。」嚴格的解釋是每行和每列都必須有標題。在你的情況下,這對行不是問題,因爲第一列中的單元在邏輯上是行標題,所以你只需要使用<td scope=row>。但是您需要添加一行列標題。

這是不是很清楚這是否需要遵守;該規則沒有「全部」一詞,解釋性文字說「每張表的第一行應該包括列標題」。因此它使用「應該」而不是「應該」或「必須」。

如果規則需要列標題,並且我會說它們是,例如將它們添加到客戶端腳本中是不可接受的(因爲禁用腳本時它們不會存在)。只有在某些瀏覽模式下才能接受它們;規則是一般的(即使瀏覽「正常」,標題也可以真正有用)。

請考慮大聲朗讀給沒有看到它的人的頁面行爲。如果表格的內容剛開始時沒有任何警告或解釋,可能會造成混淆。即使在圖形瀏覽中,用戶可能會感到困惑,部分取決於認知困難。表格前面的文本(在標題或文本段落中),表格標題和一行列標題中的解釋可能都有幫助。列標題的內容應作爲其中的一部分進行規劃;如果情況與其他文本一起明確,他們可能會比較簡潔。