アクセシビリティチェックを行う上で問題となりがちな要素・属性を強調して表示します。
問題となりがちな要素・属性 by mlca11y
Details
Authormlca11y
LicenseNo License
Categoryglobal
Created
Updated
Size4.4 kB
Statistics
Learn how we calculate statistics in the FAQ.
Failed to fetch stats.
Description
Notes
使い方
- ページのスタイルを無効にします
- Web Developerなどを利用します
- 本ユーザースタイルを有効化します
- 本ユーザースタイルによる強調表示内容を目視で確認します
制限事項
- ページやコンテンツによっては表示が崩れる場合があります
- 強調表示される要素・属性がすべて問題となるわけではありません
- 複数のルールに該当する要素では表示される内容が制限されます
- たとえばscope属性とlang属性がth要素に指定されている場合はscope属性のみが強調表示されます
Source code
/* ==UserStyle==
@name 問題となりがちな要素・属性
@namespace mlca11y
@version 1.0.0
@description アクセシビリティチェックを行う上で問題となりがちな要素・属性を強調して表示します。
@author mlca11y
==/UserStyle== */
@-moz-document url-prefix("http:"), url-prefix("https:"), url-prefix("file:") {
:root {
--outline-font: "Consolas", monospace;
--outline-color-normal: hsl(60, 75%, 33%);
--outline-color-01: hsl(0, 75%, 33%);
--outline-color-02: hsl(120, 75%, 33%);
--outline-color-03: hsl(180, 75%, 33%);
--outline-color-04: hsl(240, 75%, 33%);
--outline-color-05: hsl(300, 75%, 33%);
--outline-width-error: 7px;
--outline-width-warning: 5px;
--outline-width-info: 3px;
--outline-width-normal: 1px;
--outline-style-usecss: dashed;
--outline-style-aria: dotted;
--outline-style-normal: solid;
}
/* 問題となりがちな要素・属性 */
/* エラー */
html[ns|xmlns]:not([xml|lang]),
html[ns|xmlns]:not([lang]),
html:not([ns|xmlns]):not([lang]),
img:not([alt]),
area:not([alt]),
area[alt=""],
input[type="image"]:not([alt]),
input[type="image"][alt=""],
a[href]:empty,
button:empty,
iframe:not([title]),
iframe[title=""],
frame:not([title]),
frame[title=""] {
outline-color: var(--outline-color-normal);
outline-width: var(--outline-width-warning) !important;
outline-style: var(--outline-style-normal);
outline-offset: -2px !important;
}
/* 警告 */
a > img[alt=""]:only-child {
outline-color: var(--outline-color-normal);
outline-width: var(--outline-width-warning) !important;
outline-style: var(--outline-style-normal);
outline-offset: -2px !important;
}
/* 注意して検証 */
img[usemap],
object[usemap],
table[summary],
[accesskey],
[lang],
th[scope],
[tabindex],
form[target]:not([target="_self"]):not([target="_top"]),
a[target]:not([target="_self"]):not([target="_top"]) {
outline-color: var(--outline-color-normal);
outline-width: var(--outline-width-info) !important;
outline-style: var(--outline-style-normal);
outline-offset: -2px !important;
}
img[usemap]::after,
object[usemap]::after,
table[summary]::after,
[accesskey]::after,
[lang]::after,
th[scope]::after,
[tabindex]::after,
form[target]:not([target="_self"]):not([target="_top"])::after,
a[target]:not([target="_self"]):not([target="_top"])::after {
all: initial;
border: none !important;
border-radius: 0 !important;
color: #fff !important;
display: inline !important;
font: 14px/1.5 var(--outline-font) !important;
isolation: isolate !important;
padding: 1px !important;
}
img[usemap]::after {
background: var(--outline-color-normal);
content: 'usemap="' attr(usemap) '"' !important;
}
object[usemap]::after {
background: var(--outline-color-normal);
content: 'usemap="' attr(usemap) '"' !important;
}
table[summary]::after {
background: var(--outline-color-normal);
content: 'summary="' attr(summary) '"' !important;
}
[accesskey]::after {
background: var(--outline-color-normal);
content: 'accesskey="' attr(accesskey) '"' !important;
}
[lang]::after {
background: var(--outline-color-normal);
content: 'lang="' attr(lang) '"' !important;
}
th[scope]::after {
background: var(--outline-color-normal);
content: 'scope="' attr(scope) '"' !important;
}
[tabindex]::after {
background: var(--outline-color-normal);
content: 'tabindex="' attr(tabindex) '"' !important;
}
form[target]:not([target="_self"]):not([target="_top"])::after {
background: var(--outline-color-normal);
content: 'target="' attr(target) '"' !important;
}
a[target]:not([target="_self"]):not([target="_top"])::after {
background: var(--outline-color-normal);
content: 'target="' attr(target) '"' !important;
}
}