2012-11-27 71 views
4

複選框,我有一個看起來像這樣的數據表:508投訴「全選」,在表頭

<table><thead> 
<tr> 
<th><input type="checkbox" /></th> 
<th scope="col">Foo</th> 
<th scope="col">Bar</th><tr> 
</thead> 
<tbody> 
<tr><td><input type="checkbox" /></td><td scope="row">a</td><td>b</td></tr> 
<tr><td><input type="checkbox" /></td><td scope="row">c</td><td>d</td></tr> 
</tbody></table> 

我想在標題中的複選框以選擇在人體內的所有複選框。我寫了Javascript來做選擇,它工作正常。但是,在IE7和IE8(也許其他瀏覽器,但我們不需要支持其他任何東西),標題中的複選框永遠不會獲得標籤焦點,所以我們失敗了508.

有沒有辦法處理這沒有設置tabindexes的一切?

+0

您是否試過將JS事件處理程序分配給標題複選框? – khaverim

+0

對不起,我不清楚 - JS很好,只是沒有包含在這個例子中。我擔心複選框不會自動包含在標籤索引中。問題更新澄清。 –

+0

複選框本來應該是tabbable - 必須有其他原因,它不起作用。你能分享任何可能相關的風格或腳本嗎? – crowjonah

回答

0

看起來問題在於我們的開發團隊和508合規檢查人員實際上溝通很差。我唯一的藉口就是當我不帶筆記本電腦離開感恩節時,它發生在手機上。

無論如何,這裏的真正問題不是它沒有得到重點,而是焦點不可見。我嘗試添加一個標籤,但這並沒有幫助,我嘗試在TD上添加文本,但這也沒有幫助。一旦我確定我在問什麼,我會連續得到我的鴨子,然後問一個新問題。

謝謝大家的幫助。

+0

順便說一句,關於Stack Overflow的奇妙之處之一是我經常爲自己的問題找到答案,因爲我得到的迴應迫使我重新思考我所問的問題。你們都問好問題,我很感激。 –

2

正如Jukka在評論中所說,所有這些都需要labels。如果沒有<label>,表單元素將自動失敗508檢查。這可能是它拋出的真正錯誤,但我們需要知道正在使用哪些工具。

要回答你的新問題:

無論如何,真正的問題在這裏不是它沒有獲得焦點,但重點是不可見的。我嘗試添加一個標籤,但這並沒有幫助,我嘗試在TD上添加文本,但並沒有幫助

大多數瀏覽器在獲取焦點時都會在所有元素周圍放置1像素的虛線邊框。瀏覽你的樣式表,並尋找類似outline: none;的東西。您應該刪除該行或添加一個新的規則來增加焦點。

0

你正在尋找通過功能和可見的複選框,是嗎?

你不能用JS改變複選框樣式來創建「on focus」事件,因爲複選框並沒有真正的'樣式',保存了Ryan B提到的......但是你可以創建「聚焦」事件含有說,改變作風,以<div>複選框:

http://jsfiddle.net/ZuvbV/3/

注意這些盒子按Tab鍵更改背景顏色爲紅色。