2020.10.03

HTML・CSS

WAI-ARIAのaria-current属性で現在位置を指定

デモページはこちら

ナビゲーションメニューにWAI-ARIAのaria-current属性で現在位置を指定します。jQueryでページのURLを判別し、対象のaタグに自動的にaria-current="page"を付与します。テストでaria-current属性の付与を除外するナビゲーションも設置します。

以下のhtmlでテストします。全てのナビゲーションにaタグを設定します。aria-current属性の付与を除外するhtmlファイルはno-currentディレクトリ内に格納します。

<p class="title">aria-current付与</p>
<ul>
	<li><a href="https://blog.brick-plan.jp/wp-content/themes/bp_blog/demo/aria-current/index.html" class="c-text-link js-location">メニュー01</a></li>
	<li><a href="https://blog.brick-plan.jp/wp-content/themes/bp_blog/demo/aria-current/index2.html" class="c-text-link js-location">メニュー02</a></li>
	<li><a href="https://blog.brick-plan.jp/wp-content/themes/bp_blog/demo/aria-current/index3.html" class="c-text-link js-location">メニュー03</a></li>
</ul>
<p class="title">aria-current付与除外</p>
<ul>
	<li><a href="https://blog.brick-plan.jp/wp-content/themes/bp_blog/demo/aria-current/no-current/index.html" class="c-text-link js-location">メニュー04</a></li>
	<li><a href="https://blog.brick-plan.jp/wp-content/themes/bp_blog/demo/aria-current/no-current/index2.html" class="c-text-link js-location">メニュー05</a></li>
	<li><a href="https://blog.brick-plan.jp/wp-content/themes/bp_blog/demo/aria-current/no-current/index3.html" class="c-text-link js-location">メニュー06</a></li>
</ul>

aria-current属性が付与されたaタグはCSSのpointer-events: none;でリンクを無効化します。

.c-text-link[aria-current] {
	pointer-events: none;
}

jQueryのコードです。aタグのhref属性とURLが一致したaタグにaria-current=”page”を付与します。href属性に「no-current」が含まれる場合はaria-current属性の付与を除外します。

function navCurrent() {
	var url = window.location;
	$('.js-location:not([href*="no-current"])[href="' + url + '"]').attr('aria-current', 'page');
}
navCurrent();

関連記事

2024.08.19

HTML・CSS

縦書き文字の配置について

縦書きの文字を写真の左上・左中・左下・右上・右中・右下に配置します。デモページはこちら 以下のhtml構造で確認します。 CSSはpositionとtransf…

2024.09.10

HTML・CSS

backdrop-filter: blurとfilter: blurの違い

backdrop-filterプロパティのblurとfilterプロパティのblurを比較して違いを確認します。デモページはこちら 共通のCSSは以下になります…

2020.10.19

HTML・CSS

コーディング時のIE11のバグ

コーディング時に発生したIE11のバグのまとめです。主にflexboxで発生します。 ■ display: flexの要素にmin-heightを指定した場合、…

2022.08.30

HTML・CSS

linear-gradientを利用した文字の下線

background-imageプロパティのlinear-gradientを利用して複数行の文字に下線を引きます。複数行に対応させるため、inline要素に適用…

2020.07.05

HTML・CSS

rubyタグでテキストにルビ(ふりがな)を振る

rubyタグとrtタグの二つを使ってテキストにルビ(ふりがな)を振ります。rtタグはふりがな、rubyタグはテキストとふりがな(rtタグを含む)の両方を囲います…

上に戻る