CSS によるスタイル変更の制限について調べた内容を書いていきます.
このページの内容のテストに フォーム部品の実装状況動的疑似クラス を使いました.
各疑似クラスのスタイリングの制限
:hover
$HOVER_PSEUDO_CLASS_ONLY_LINK
- IE6 以下は
:hover
はa[href]
にしか働かない為、a:hover
を:hover
に省略できる.
- IE6 以下は
$CANUSE_HOVER_PSEUDO_CLASS
- IE8 以上, Opera, Gecko.
:active
IE11 以下では、a:active
を :active
にすると全ての非インタラクティブな要素(<div>
等)へのクリックで :active
になる為、省略できない.
$ACTIVE_ON_LINK_BEHAVES_FOCUS
,$ACTIVE_PSEUDO_CLASS_ONLY_LINK
- IE7 以下はリンク要素への
:active
を実装するがそのふるまいはa:focus
- IE7 以下はリンク要素への
$FOCUS_APPLIED_TO_ACTIVE
- Gecko ~1.7,
:focus
のスタイルが:active
にも適用される.
- Gecko ~1.7,
$CANUSE_ACTIVE_PSEUDO_CLASS
- IE8 以上, Gecko 1.8 以上
:focus
$FOCUSED_COLOR_FIXED_AT_SYSTEM_COLOR
- Opera 8~9,
:focus
のテキスト色はシステムカラー(HighlightText
)で固定されている.必要に応じて背景色にbackground-color:Highlight
を指定してコントラストを確保できるようにする.
- Opera 8~9,
$CANT_CHANGE_TEXT_COLOR_WHEN_FOCUS
- Gecko ~1.2.1,
:focus
セレクタでテキスト色の上書きが出来ない.
- Gecko ~1.2.1,
$FOCUS_PSEUDO_CLASS_ONLY_LINK
- IE7, Opera 7.2~7.5,
:focus
はリンク要素にしか働かない.
- IE7, Opera 7.2~7.5,
$CANUSE_FOCUS_PSEUDO_CLASS
- IE8 以上, Opera 7~7.1, Opera 8 以上, Gecko
タブフォーカスについて
タブキーでフォーカスの移動が出来るか?:active
のスタイルが適用されるケースも含む.
- フォーム部品へのタブフォーカス
- IE, Opera 7~7.1x, Opera 8 以上, Gecko
- リンク要素へのタブフォーカス
- IE, Opera 7 以上, Gecko
Opera ~7.5, Gecko 0.6~0.9.4 はタブフォーカスの移動が奇妙.近い階層でないとフォーカスが移動しないようだ.
フォーム部品へのスタイリングの制限
$LIMITED_STYLING_OF_ITEMS_IN_FORM
Opera 9.27 以下, IE7 以下では様々な程度で、フォーム部品のスタイリングに制限がある.
その為、デフォルトのスタイルを尊重する。しかし、:focus
や :active
では枠線色を変更する.
また Opera 7.2~7.5 には form :focus
にスタイルを設定すると <input>
, <textarea>
に触れなくなるバグがある為、フォーカス時のスタイルを諦める.
この他の制限
$CANUSE_TRANSPARENT_BORDER_COLOR
- 主に枠線を使って書く三角形で使用する.IE6以下をの除く
$CANUSE_OUTLINE
- IE8 以上, Gecko 1.8 以上, Opera 8 以上
$CANUSE_LIMITED_OUTLINE
- Opera 7.x, 動的疑似クラスで
outline
の(色の)変更が出来ない
- Opera 7.x, 動的疑似クラスで
リンク
- LVHA 順について
- ウェブアクセシビリティに関する文書の日本語訳で IE6 時代のもの。ブラウザ毎の差異を紹介しつつ、各インタラクションに適切にスタイリングをするように案内している。