



WithCodeMedia-1-pc
WithCodeMedia-2-pc
WithCodeMedia-3-pc
WithCodeMedia-4-pc




WithCodeMedia-1-sp
WithCodeMedia-2-sp
WithCodeMedia-3-sp
WithCodeMedia-4-sp









生徒JIS X 8341-3の適合レベルって何ですか?A・AA・AAAの違いがよくわかりません。



JIS X 8341-3はWebアクセシビリティの日本の標準規格じゃ。レベルA・AA・AAAの違いと確認方法を今日はしっかり解説するぞい!
JIS X 8341-3はWebコンテンツのアクセシビリティを規定する日本産業規格で、適合レベルはA・AA・AAAの3段階に分かれます。公共機関を中心に多くの組織がレベルAAへの準拠を目標とし、試験によって達成状況を証明します。本記事では各レベルの達成基準・試験手順・自動検証ツール・実装例を体系的に解説します。
JIS X 8341-3は、日本産業規格(JIS)が定めるWebコンテンツのアクセシビリティに関する規格です。正式名称は「高齢者・障害者等配慮設計指針-情報通信における機器,ソフトウェア及びサービス-第3部:ウェブコンテンツ」といいます。公共機関のWebサイトでは法令に基づく対応が義務化されており、民間企業でも標準的な品質指標として参照されています。
JIS X 8341-3:2016は、W3Cが策定した国際規格WCAG(Web Content Accessibility Guidelines)2.0と整合性が取られています。WCAG 2.0のレベルA・AAの達成基準を日本語化・採用したものであるため、JIS X 8341-3への準拠は国際的なアクセシビリティ基準への準拠とほぼ同義です。
| 規格名 | 策定機関 | 対応レベル |
|---|---|---|
| WCAG 2.0 | W3C(国際) | A / AA / AAA |
| JIS X 8341-3:2016 | 日本産業規格 | A / AA(WCAG 2.0をベース) |
JIS X 8341-3では、アクセシビリティの達成度をレベルA・AA・AAAの3段階で定義します。これらは階層構造になっており、上位レベルは下位レベルのすべての基準を包含します。
| レベル | 位置づけ | 主な対象 |
|---|---|---|
| A | 最低限の基準 | すべてのWebサイト |
| AA | 推奨される標準基準 | 公共機関・一般企業サイト |
| AAA | 最高レベルの基準 | 高度なアクセシビリティが必要なサイト |
レベルAはWebコンテンツがアクセシブルであるための最低限の要件です。未達成の場合、一部のユーザーはコンテンツにアクセスできません。
html lang属性でページの主言語を指定する<!-- ❌ 悪い例:代替テキストがない -->
<img src="product.jpg">
<!-- ✅ 良い例:適切な代替テキスト -->
<img src="product.jpg" alt="赤いトートバッグ、A4サイズ対応、本革製">
<!-- 装飾的な画像の場合は空のaltを設定 -->
<img src="decoration.png" alt="">レベルAAは実用的なアクセシビリティを確保するための推奨基準です。多くの企業・公共機関がレベルAAへの準拠を目標としています。レベルAAに準拠するには、レベルAのすべての基準を満たした上で追加要件をクリアする必要があります。
/* ❌ 悪い例:コントラスト比が不十分(2.5:1程度) */
.low-contrast {
color: #999999; /* 薄いグレー */
background-color: #ffffff; /* 白 */
}
/* ✅ 良い例:コントラスト比4.5:1以上 */
.good-contrast {
color: #595959; /* 濃いグレー */
background-color: #ffffff; /* 白 */
/* コントラスト比:7.0:1 */
}
/* より高いコントラスト */
.high-contrast {
color: #000000; /* 黒 */
background-color: #ffffff; /* 白 */
/* コントラスト比:21:1 */
}/* ❌ 悪い例:フォーカスを無効化 */
button:focus {
outline: none; /* フォーカスが見えない */
}
/* ✅ 良い例:明確なフォーカス表示 */
button:focus {
outline: 3px solid #0066cc;
outline-offset: 2px;
}
/* さらに良い例:視認性の高いフォーカススタイル */
button:focus-visible {
outline: 3px solid #0066cc;
outline-offset: 2px;
box-shadow: 0 0 0 4px rgba(0, 102, 204, 0.2);
}レベルAAAは最高レベルのアクセシビリティを提供する基準です。ただし、すべてのコンテンツに対してレベルAAAを達成することは現実的でないとされており、JIS X 8341-3でも一部基準への適用が想定されています。
<!-- ❌ 悪い例:リンクテキストだけでは目的が不明 -->
<p>詳しくは<a href="/privacy">こちら</a>をご覧ください。</p>
<!-- ⚠️ レベルAA:文脈を含めれば理解可能 -->
<p>プライバシーポリシーについて詳しくは<a href="/privacy">こちら</a>をご覧ください。</p>
<!-- ✅ レベルAAA:リンクテキストだけで目的が明確 -->
<p>詳しくは<a href="/privacy">プライバシーポリシー</a>をご覧ください。</p>
<!-- 視覚的には「こちら」と表示し、スクリーンリーダーには詳細を提供 -->
<p>詳しくは<a href="/privacy">
こちら<span class="sr-only">(プライバシーポリシー)</span>
</a>をご覧ください。</p>実務において、多くの組織がレベルAAの準拠を目標としています。その理由は以下の通りです。
JIS X 8341-3では、アクセシビリティの対応状況を示す対応度表記が3種類定義されています。Webサイトのアクセシビリティ方針ページに記載する際の基準となります。
| 表記 | 意味 | 試験の要否 | 結果公開 |
|---|---|---|---|
| 準拠 | 目標レベルのすべての基準を満たす | 必須 | 必須 |
| 一部準拠 | 一部の基準に未対応がある | 必須 | 任意 |
| 配慮 | 取り組み中・試験未実施 | 任意 | 任意 |
「準拠」は、目標とする適合レベルのすべての達成基準を満たし、試験結果を公開した状態です。アクセシビリティ方針の公開、試験の実施、結果の公開がすべて必要です。
本ウェブサイトは、JIS X 8341-3:2016の適合レベルAAに準拠しています。
試験実施期間:2026年1月15日〜2026年1月31日
試験を実施したページ:全50ページ
依拠した規格:JIS X 8341-3:2016
達成した適合レベル:AA
例外事項:なし「一部準拠」は、目標とする適合レベルの一部の達成基準に未対応がある状態です。試験の実施とアクセシビリティ方針の公開は必須ですが、試験結果の公開は任意です。未対応の基準と今後の対応方針を示すことが望まれます。
本ウェブサイトは、JIS X 8341-3:2016の適合レベルAAに一部準拠しています。
試験実施期間:2026年1月15日〜2026年1月31日
依拠した規格:JIS X 8341-3:2016
目標とした適合レベル:AA
未対応の達成基準:
- 1.2.4 キャプション(ライブ):ライブ配信機能が実装されていないため未対応
- 1.2.5 音声解説(収録済み):一部の動画コンテンツで未実装
今後の対応方針:
2026年度中に上記の未対応項目について対応を進める予定です。「配慮」は正式な規格定義の表記ではなく、段階的対応の初期段階で使われます。試験は任意で、アクセシビリティ向上に取り組んでいる姿勢を示すものです。将来的に「一部準拠」「準拠」へ移行することを目指します。
本ウェブサイトは、JIS X 8341-3:2016の適合レベルAAに配慮して制作しています。
実施している対応:
- すべての画像に代替テキストを設定
- キーボードのみで操作可能な設計
- 適切な見出し構造の実装
- 色のコントラスト比の確保
今後の取り組み:
2026年度中に正式な試験を実施し、「一部準拠」または「準拠」への移行を目指します。適合レベルを証明するための試験は、以下の4ステップで進めます。
JIS X 8341-3では以下の2つの方法でページを選定できます。
| 方法 | 内容 | 最低ページ数 |
|---|---|---|
| 代表ページ選定 | トップページ・主要コンテンツ・フォームなど代表的なページを選ぶ | 規定なし(網羅性が重要) |
| ランダムサンプリング | 統計的にページをランダム抽出(トップページは必須) | 総ページ数の10%以上・最低40ページ |
代表ページ選定では、以下を必ず含めます。
各達成基準に対して、自動ツールと手動検証を組み合わせて確認します。自動ツールだけでは検出できない問題も多いため、両方の実施が必要です。
【ページ情報】
URL: https://example.com/
ページタイトル: 株式会社○○ - トップページ
検証日: 2026年2月25日
【達成基準チェック(レベルA)】
✅ 1.1.1 非テキストコンテンツ
- すべての画像にalt属性あり
- 装飾画像はalt=""で設定
✅ 2.1.1 キーボード
- Tabキーですべてのリンク・ボタンにアクセス可能
- モーダルウィンドウもキーボードで操作可能
✅ 2.4.2 ページタイトル
- <title>タグに適切な内容を設定
✅ 3.1.1 ページの言語
- <html lang="ja">を設定
✅ 4.1.1 構文解析
- W3C Validatorでエラーなし
【達成基準チェック(レベルAA)】
✅ 1.4.3 コントラスト(最低限)
- 本文:コントラスト比7.2:1(合格)
- ボタン:コントラスト比4.8:1(合格)
✅ 2.4.7 フォーカスの可視化
- すべてのインタラクティブ要素でフォーカス表示あり
❌ 1.2.4 キャプション(ライブ)
- ライブ配信機能なし(該当なし)
【結果】
レベルAA:準拠試験結果は以下の情報を含めて記録します。
試験結果をもとに適合表明を作成し、Webサイト上で公開します。アクセシビリティ方針ページを設けて掲載するのが一般的です。
<h1>ウェブアクセシビリティ方針</h1>
<h2>適合レベル</h2>
<p>本ウェブサイトは、JIS X 8341-3:2016の適合レベルAAに準拠しています。</p>
<h2>試験結果</h2>
<dl>
<dt>試験実施期間</dt>
<dd>2026年1月15日〜2026年1月31日</dd>
<dt>依拠した規格</dt>
<dd>JIS X 8341-3:2016</dd>
<dt>達成した適合レベル</dt>
<dd>レベルAA</dd>
<dt>試験対象ページ数</dt>
<dd>50ページ</dd>
<dt>試験実施者</dt>
<dd>株式会社○○ Web制作部</dd>
</dl>
<h2>試験対象ページ一覧</h2>
<ul>
<li>トップページ: https://example.com/</li>
<li>会社概要: https://example.com/about/</li>
<li>サービス紹介: https://example.com/service/</li>
<!-- 以下省略 -->
</ul>
<h2>達成基準チェックリスト</h2>
<p><a href="checklist.pdf">達成基準チェックリスト(PDF)</a></p>アクセシビリティ試験を効率化するために自動検証ツールを活用しましょう。各ツールの特徴と使い方を解説します。
axe DevToolsはDeque Systemsが開発したアクセシビリティ検証ツールで、業界標準として広く使われています。偽陽性(false positive)が少なく、信頼性の高い検証ができます。
LighthouseはGoogleが開発したWebページ品質評価ツールで、アクセシビリティを0〜100のスコアで評価します。Chrome DevToolsに統合済みのため、追加インストール不要です。
Pa11y CIはコマンドラインで動作するアクセシビリティテストツールで、CI/CDパイプラインに組み込んで自動テストを継続的に実施できます。
# インストール
npm install --save-dev pa11y-ci
# 設定ファイル .pa11yci の作成
{
"defaults": {
"standard": "WCAG2AA",
"timeout": 10000,
"wait": 1000
},
"urls": [
"https://example.com/",
"https://example.com/about/",
"https://example.com/service/"
]
}
# テスト実行
npx pa11y-ci
# GitHub Actionsに組み込む例
name: Accessibility Check
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci
- run: npx pa11y-ciColor Contrast Analyzerはテキストと背景のコントラスト比を測定する専用デスクトップアプリです。スポイト機能で画面上の色を取得し、WCAG 2.0基準に基づいてレベルAA(4.5:1)・レベルAAA(7:1)の合否を判定します。Windows・macOS対応です。
適切なHTML要素を使用することで、スクリーンリーダーが正しく情報を伝えられます。
<!-- ❌ 悪い例:すべてdivで構成 -->
<div class="header">
<div class="nav">
<div class="nav-item">ホーム</div>
<div class="nav-item">サービス</div>
</div>
</div>
<div class="main">
<div class="article">
<div class="title">記事タイトル</div>
</div>
</div>
<!-- ✅ 良い例:セマンティックHTML -->
<header>
<nav>
<a href="/">ホーム</a>
<a href="/service">サービス</a>
</nav>
</header>
<main>
<article>
<h1>記事タイトル</h1>
</article>
</main>WAI-ARIA(Accessible Rich Internet Applications)は、動的コンテンツやカスタムUIコンポーネントのアクセシビリティを向上させる属性セットです。
<!-- モーダルを開くボタン -->
<button
aria-haspopup="dialog"
aria-controls="modal-1"
onclick="openModal()">
詳細を見る
</button>
<!-- モーダルダイアログ -->
<div
id="modal-1"
role="dialog"
aria-labelledby="modal-title"
aria-describedby="modal-desc"
aria-modal="true"
hidden>
<h2 id="modal-title">詳細情報</h2>
<p id="modal-desc">ここに詳細な説明が入ります。</p>
<button aria-label="閉じる" onclick="closeModal()">×</button>
</div>
<script>
function openModal() {
const modal = document.getElementById('modal-1');
modal.hidden = false;
// フォーカスをモーダル内に移動
const firstFocusable = modal.querySelector('button');
firstFocusable.focus();
// Escキーで閉じる
document.addEventListener('keydown', handleEscape);
}
function closeModal() {
const modal = document.getElementById('modal-1');
modal.hidden = true;
// フォーカスを開いたボタンに戻す
document.querySelector('[aria-controls="modal-1"]').focus();
document.removeEventListener('keydown', handleEscape);
}
function handleEscape(e) {
if (e.key === 'Escape') {
closeModal();
}
}
</script>フォームは多くのユーザーが利用する重要な要素です。適切なラベル付けとエラーハンドリングが必要です。
<!-- ✅ 良いフォームの例 -->
<form>
<!-- label要素でラベル付け -->
<div>
<label for="email">メールアドレス <span aria-label="必須">*</span></label>
<input
type="email"
id="email"
name="email"
required
aria-required="true"
aria-describedby="email-error email-hint"
>
<p id="email-hint">例:example@example.com</p>
<p id="email-error" role="alert" aria-live="polite" hidden>
有効なメールアドレスを入力してください
</p>
</div>
<!-- ラジオボタングループ -->
<fieldset>
<legend>お問い合わせの種類</legend>
<label>
<input type="radio" name="type" value="product"> 製品について
</label>
<label>
<input type="radio" name="type" value="support"> サポートについて
</label>
</fieldset>
<button type="submit">送信する</button>
</form>
<script>
// エラー表示の例
document.querySelector('form').addEventListener('submit', (e) => {
const emailInput = document.getElementById('email');
const errorMessage = document.getElementById('email-error');
if (!emailInput.validity.valid) {
e.preventDefault();
// エラーメッセージを表示
errorMessage.hidden = false;
// aria-invalid属性を設定
emailInput.setAttribute('aria-invalid', 'true');
// フォーカスをエラー箇所に移動
emailInput.focus();
}
});
</script>見出しは階層的に配置し、スキップやジャンプができるようにします。見出しレベルを飛ばすと、スクリーンリーダーのユーザーが構造を把握しにくくなります。
<!-- ❌ 悪い例:見出しレベルを飛ばしている -->
<h1>メインタイトル</h1>
<h3>セクション(h2を飛ばしている)</h3>
<!-- ✅ 良い例:階層的な見出し構造 -->
<h1>メインタイトル</h1>
<h2>セクション1</h2>
<h3>サブセクション1-1</h3>
<h3>サブセクション1-2</h3>
<h2>セクション2</h2>
<h3>サブセクション2-1</h3>キーボードユーザーが繰り返しコンテンツをスキップできるよう、ページ冒頭にスキップリンクを設置します(達成基準2.4.1 ブロックスキップ)。
<!-- ページ最上部に配置 -->
<a href="#main-content" class="skip-link">メインコンテンツへスキップ</a>
<header>
<!-- ナビゲーションなど -->
</header>
<main id="main-content" tabindex="-1">
<!-- メインコンテンツ -->
</main>
<style>
/* スキップリンクは通常非表示、フォーカス時のみ表示 */
.skip-link {
position: absolute;
top: -40px;
left: 0;
background: #000;
color: #fff;
padding: 8px;
text-decoration: none;
z-index: 100;
}
.skip-link:focus {
top: 0;
}
</style>異なります。JIS X 8341-3:2016はWCAG 2.0をベースにしているため、WCAG 2.1で追加された達成基準(例:1.3.4 表示の向き、1.4.10 リフロー、2.5.3 ラベルを含む名前など)は含まれません。WCAG 2.1レベルAAへの準拠を目指す場合は、JIS X 8341-3の基準に加えてWCAG 2.1の追加基準も確認が必要です。
完了できません。axe DevToolsやLighthouseなどの自動ツールは、達成基準の約30〜40%しか機械的に検証できません。代替テキストの内容の妥当性、キーボード操作の論理性、スクリーンリーダーでの読み上げ確認など、人間が実際に操作して確認しなければわからない基準が多くあります。試験は必ず自動ツールと手動検証の組み合わせで実施してください。
法律上の義務は、現時点では主に公共機関(国・地方公共団体)のWebサイトに対して課されています。ただし、2024年施行の「障害者情報アクセシビリティ・コミュニケーション施策推進法」などを背景に、民間企業にも対応の努力義務が求められる流れが強まっています。ユーザビリティ向上・SEO・ブランドイメージの観点からも、民間企業にとっても対応するメリットは大きいです。
JIS X 8341-3・WCAG 2.0ともに、すべてのコンテンツでレベルAAAを達成することは現実的でないと明記しています。手話通訳の提供や80文字以内のテキスト幅制限など、サービスの性質によっては対応が困難な基準も含まれます。多くの場合はレベルAAへの準拠を目標として、余裕がある範囲でAAAの基準を追加するアプローチが適切です。
代表ページ選定の場合、規定の最低ページ数はありませんが、サイト内のページ種別(トップ・一覧・詳細・フォームなど)を網羅することが重要です。ランダムサンプリングの場合は総ページ数の10%以上かつ最低40ページが目安です。規模の小さいサイトはすべてのページを対象とすることも推奨されます。
アクセシビリティ対応はすべてのユーザーに平等な情報アクセスを保証するだけでなく、SEO向上・ユーザビリティ改善・ブランドイメージ向上にもつながります。まずはレベルAAの準拠を目標に、段階的に取り組んでいきましょう。
WithCodeでは、アクセシブルなWebサイト制作のスキルも学べます。正しいHTML構造・セマンティックなマークアップ・ARIA属性の使い方など、実務で必要な知識を体系的に身につけることができます。


副業・フリーランスが主流になっている今こそ、自らのスキルで稼げる人材を目指してみませんか?
未経験でも心配することはありません。初級コースを受講される方の大多数はプログラミング未経験です。まずは無料カウンセリングで、悩みや不安をお聞かせください!
公式サイト より
今すぐ
無料カウンセリング
を予約!