スクリーンリーダーユーザーの要素の配置
ユーザーに配慮しながらレイアウトを保護
1.見えないものがある。
🕵🏾♂️なぜ見えない要素を使うのですか?
スクリーンリーダーユーザに正確な情報を提供するとともに、スクリーンを見るユーザに混乱をもたらすことはない.
コンテンツは見えませんがhtml上に存在するため、スクリーンリーダーはそのコンテンツに関する説明を読むことができます.
NAVERのホームページを参照すると、スクリーンリーダーのユーザーに検索アイコン(拡大鏡)を説明する要素が見つかります.
.blind
というクラスがあり、画面には見えず、内容だけが검색
です.
さらにclip
を用いて0の値を拡大して全く見えず、1、1 pxで小さな位置を占めた.
2. display:none;どうして使わないのですか。
🤷♀️ 意外な死?
display: none;
が付与された要素はページ内に位置を占めず、見えないがhtml内で検出される.しかし、致命的な欠点は、要素を全くないと思っているので、スクリーンリーダーは読まずにスキップしてしまうことです.🤷♀️ ではwidth:0;height:0; やればいいじゃないか。
display:none;
の例を示す.iosが提供するスクリーンリーダーで実行してみます.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>screen reader test</title>
<style>
h1 {
display: none;
}
</style>
</head>
<body>
<h1>스크린 리더 테스트입니다.</h1>
<p>안녕하세요 제 말이 들리십니까?</p>
</body>
</html>
iframeはブロックされているようで、リンクで置き換えられています.display:none; 場合
ご覧の通り、`display:none;`追加された要素はスクリーンから消えますが、スクリーンリーダーも認識してスキップできません.
3.クリップを使用して内容を説明する
逆に、上記の例のNAVERを参照して処理を行う.
元素を非常に小さな箱に閉じ込めればいいです.
スクリーンリーダーは、レイアウトを破壊しないで見えない文字を読み取ることができます.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>screen reader test</title>
<style>
/* h1 {
display: none;
} */
h1 {
position:absolute;
overflow: hidden;
padding: 0;
margin:-1px;
width: 1px;
height: 1px;
clip: rect(0,0,0,0);
}
</style>
</head>
<body>
<h1>스크린 리더 테스트입니다.</h1>
<p>안녕하세요 제 말이 들리십니까?</p>
</body>
</html>
これもリンクで置き換えられます.
4. 화면 밖으로 밀어버리기
position:absolute;
에 left: -10000px;
값을 줘서 요소를 화면바깥으로 밀어서 보이지 않게 하는방법이다.
단, 시각장애인들 또한 완전히 시야가 없는것이 아닌경우가 많기 때문에 콘텐츠의 위치와 설명이 적절히 조화되어야 함을 항상 고려해야한다.
.sr-only {
position: absolute;
left: -9999px;
top: auto;
width: 1px;
height: 1px;
overflow: hidden;
}
5. 스킵버튼 만들기
『p>スクリーンリーダー』を使って、私は感じて、誰が一日中見ることができますか?br/>
スキップボタンを作成すると、時間を無駄にせずに必要なパーティションに直接移動できます.
<style>
.nav-skip a {
position: absolute;
top: -200px;
left: 0;
width: 300px;
line-height: 30px;
border: 1px
solid #fff;
color: #fff;
background: #333;
text-align: center;
}
</style>
メイン画面で要素を画面外から上に移動し、Tab
キーを押してアクティブにします.
メニューナビゲーションのように複数作成して使うのもいいですね.
次は、上記のスキップボタンに:focus
を使用して、Tab
を押して要素の位置値を変更し、スキップボタンが表示されるように作成した例です.