2012-10-18 38 views
3

這是政府財務表,所以我不能重新排序列。第一列是帳戶代碼,第二列是帳戶的名稱。如果我這樣做:對HTML可訪問表 - 是否必須是連續的第一列?

<thead><tr><th scope="col">Account Code</th><th scope="col">Account Name</th></tr></thead> 
<tbody><tr><td>12345</td><th scope="row">Fish and Wildlife</th></tr> 
... 
</tbody> 

威爾驗證BARF,將屏幕閱讀器正確解析呢?

+0

爲什麼呢?你有沒有嘗試過? –

回答

3

在規範中,他們沒有指定是否需要將th顯示爲表格行中的第一列,所以您應該能夠將th放在任何你想要的位置。

Table cells may either contain "header" information (see the TH element) or "data" (see the TD element). 

HTML w3 specs

0

通過w3 validator然此文檔,並將其清理出來了:

不是char編碼,因爲我粘貼到自己的文件不能被檢查
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>I AM YOUR DOCUMENT TITLE REPLACE ME</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<meta http-equiv="Content-Style-Type" content="text/css"> 
</head> 
<body> 
<div> 
<table> 
<thead><tr><th scope="col">Account Code</th><th scope="col">Account Name</th></tr></thead> 
<tbody><tr><td>12345</td><th scope="row">Fish and Wildlife</th></tr> 
</tbody> 
</table> 
</div> 
</body> 
</html> 

等。

+1

驗證器只關心與HTML模式相比較時標記的正確性。它不檢查可訪問性問題。 – Dai

+1

是正確的,但他在詢問「驗證是否會導致這種情況」。 –

2

<th>只是表示「標題單元格」,它們可以在<thead><tbody><tfoot>適當存在的內容。

您已在<thead><th>單元格中獲得了列標題,因此您提供的標記既符合模式正確又符合可訪問性準則。你的代碼沒有問題。

2

它的罰款。 example in the HTML5 spec就是這樣。

注意然而,該<th scope="row">細胞是隻對那些td細胞的它的正確的報頭,而不是爲td細胞到它的左側(即,帳戶代碼)。

你可以一個headers屬性添加到每個賬戶代碼td指向帳戶名th在同一行,但你需要分配一個唯一的ID爲每行的帳戶名th

+0

是的,但這些表格長達數百行,因此添加所有這些ID會使代碼非常難看。仍然可能是我必須做的。謝謝。 – RioBrewster

相關問題