Skip to content
Technical

SVGアクセシビリティ:ベクターグラフィックスをインクルーシブにする方法

すべての人に対応するアクセシブルなSVGグラフィックスを作成しましょう。ARIA、スクリーンリーダー、フォーカス管理、インクルーシブデザインの完全ガイド。

Robin Monteiro2026年1月23日2026年10月10日6 分
Use this article with an AI assistant:
.md
SVGアクセシビリティ:ベクターグラフィックスをインクルーシブにする方法
R
Robin Monteiro

Founder of VectoSolve

Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.

How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author

Image vectorizationCutting machine filesEmbroidery filesSVG
Free previewNo signupFull-quality output

Key Takeaways

  • 世界で10億人以上が支援技術に依存しています — アクセシブルなSVGは倫理的にも法的にも必須です
  • デコラティブなSVGにはaria-hidden="true"を、情報伝達用にはrole="img"と<title>/<desc>を使用
  • WCAG 2.1はグラフィックスとUIコンポーネントに3:1、SVG内のテキストに4.5:1のコントラストを要求
  • prefers-reduced-motionを常に尊重し、要求するユーザーのSVGアニメーションを無効化
  • 実際のスクリーンリーダー(NVDA、VoiceOver、TalkBack)でテスト — 自動化ツールはアクセシビリティ問題の約30%しか検出できません

SVGアクセシビリティが重要な理由

世界で10億人以上が障害を持って生活しています。SVGグラフィックスをアクセシブルにすることで、誰もがコンテンツを理解し操作できることを保証します。多くの場合、法的要件でもあります。

すべてのユーザーのためにSVGグラフィックスをアクセシブルにする完全ガイド
SVGアクセシビリティ:スクリーンリーダーユーザーを含むすべての人にベクターグラフィックスが機能することを保証

アクセシビリティの基礎

支援技術の理解

人々がSVGにアクセスする方法:

  • スクリーンリーダー(NVDA、JAWS、VoiceOver)
  • キーボードナビゲーション
  • スイッチデバイス
  • 画面拡大鏡
  • 音声コントロール

画像に関するWCAGガイドライン

主要要件:

WCAG 2.1 要件:
- 非テキストコンテンツには代替が必要
- 色だけで情報を伝えない
- 十分なカラーコントラスト
- 劣化なしでリサイズ可能
- フォーカス可能な要素はキーボードでアクセス可能

SVGアクセシビリティパターン

デコラティブSVG

純粋にビジュアルな要素の場合:

html
<svg aria-hidden="true" focusable="false">
  <!-- デコラティブグラフィック -->
</svg>

使用場面:

  • 背景パターン
  • ビジュアルの装飾
  • テキスト付きの冗長なアイコン
  • 純粋に美的な要素

情報伝達SVG

意味のあるグラフィックスの場合:

html
<svg role="img" aria-labelledby="chart-title">
  <title id="chart-title">売上成長 2025</title>
  <!-- チャートコンテンツ -->
</svg>

使用場面:

  • チャートとグラフ
  • 図表
  • インフォグラフィック
  • 独立したアイコン

複雑なSVG

詳細情報の場合:

html
<svg role="img" aria-labelledby="title desc">
  <title id="title">組織図</title>
  <desc id="desc">
    CEOを頂点とした階層構造、
    3人のVPが報告、それぞれにチーム。
  </desc>
  <!-- 複雑な図表 -->
</svg>

Pro Tip: 複雑なデータビジュアライゼーション(チャート、マップ)には、SVGと並んで常に非表示の<table>代替を提供してください。スクリーンリーダーはSVGパスデータよりもテーブルをはるかに効果的に解析します。


A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

SVG用ARIA属性

必須属性

html
<!-- ロール定義 -->
role="img"           <!-- 静的画像 -->
role="graphics-document"  <!-- 複雑なインタラクティブ -->

<!-- ラベル -->
aria-label="..."     <!-- シンプルな説明 -->
aria-labelledby="..." <!-- タイトル要素への参照 -->
aria-describedby="..." <!-- 詳細な説明 -->

<!-- 状態 -->
aria-hidden="true"   <!-- ATから非表示 -->
focusable="false"    <!-- フォーカスを防止 -->

TitleとDesc要素

ネイティブSVGアクセシビリティ:

html
<svg role="img" aria-labelledby="icon-title icon-desc">
  <title id="icon-title">警告</title>
  <desc id="icon-desc">
    注意を示す感嘆符付きの黄色い三角形
  </desc>
  <path d="..."/>
</svg>

「アクセシビリティは最後に追加する機能ではありません — すべてを良くするデザインの制約です。アクセシブルなSVGは、よく構造化されたSVGです。」- Leonie Watson、アクセシビリティエンジニア & W3Cアドバイザリーボード


インタラクティブSVGのアクセシビリティ

フォーカス可能な要素

インタラクティブな部分をアクセシブルに:

html
<svg>
  <a href="/section-1" tabindex="0">
    <rect x="0" y="0" width="100" height="50"/>
    <text>セクション1</text>
  </a>
</svg>

フォーカスインジケーター

可視フォーカス状態:

css
svg a:focus,
svg [tabindex]:focus {
  outline: 2px solid #0066cc;
  outline-offset: 2px;
}

キーボードナビゲーション

キーボードアクセスを確保:

javascript
svgElement.addEventListener('keydown', (e) => {
  if (e.key === 'Enter' || e.key === ' ') {
    // 要素をアクティブ化
  }
});

カラーアクセシビリティ

コントラスト要件

WCAGコントラスト比:

最低要件:
テキスト: 4.5:1(通常)、3:1(大きい)
グラフィックス: 背景に対して3:1
UIコンポーネント: 3:1

コントラストのテスト

検証ツール:

  • ブラウザDevTools
  • コントラストチェッカー
  • アクセシビリティ監査

色に依存しない

色だけに頼らない:

html
<!-- 悪い例:色のみ -->
<circle fill="red"/>  <!-- エラー -->
<circle fill="green"/>  <!-- 成功 -->

<!-- 良い例:パターン + 色 -->
<circle fill="red">
  <title>エラー</title>
</circle>
<use href="#checkmark" fill="green">
  <title>成功</title>
</use>
Webアプリケーション用の適切なアクセシビリティ属性を持つSVGアイコン
アクセシブルなアイコンパターン:デコラティブ vs. 情報伝達SVGの使用

Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

アイコンのアクセシビリティ

アイコンボタン

html
<button aria-label="ダイアログを閉じる">
  <svg aria-hidden="true" focusable="false">
    <path d="..."/>
  </svg>
</button>

テキスト付きアイコン

html
<button>
  <svg aria-hidden="true"><!-- アイコン --></svg>
  ドキュメントを保存
</button>

独立したアイコン

html
<svg role="img" aria-label="通知:未読メッセージ3件">
  <circle cx="12" cy="12" r="10" fill="#ff0000"/>
  <text x="12" y="16" text-anchor="middle">3</text>
</svg>

アニメーションのアクセシビリティ

ユーザー設定の尊重

css
@media (prefers-reduced-motion: reduce) {
  svg * {
    animation: none !important;
    transition: none !important;
  }
}

一時停止コントロール

html
<button id="toggle-animation">
  アニメーションを一時停止
</button>

<svg class="animated-svg">
  <!-- アニメーションコンテンツ -->
</svg>

WCAG 2.1成功基準2.3.1は、1秒間に3回以上点滅するものがないことを要求しています。SVGアニメーションに急速な色変化やストロボ効果が含まれる場合、一時停止コントロールを提供し、prefers-reduced-motionを尊重してください。


SVGアクセシビリティのテスト

手動テスト

チェックリスト:

  1. キーボードのみでナビゲート
  2. スクリーンリーダーでテスト
  3. 200%ズームで確認
  4. カラーコントラストを検証
  5. ユーザーと一緒にテスト

自動テスト

ツール:

  • axe DevTools
  • WAVE
  • Lighthouse
  • Pa11y

スクリーンリーダーテスト

テスト対象:

  • NVDA(Windows、無料)
  • VoiceOver(Mac/iOS、内蔵)
  • TalkBack(Android、内蔵)
  • JAWS(Windows、商用)

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

一般的なパターンリファレンス

ロゴ

html
<a href="/">
  <svg role="img" aria-label="会社名 - ホーム">
    <title>会社ロゴ</title>
    <!-- ロゴパス -->
  </svg>
</a>

データビジュアライゼーション

html
<svg role="img" aria-labelledby="chart-title">
  <title id="chart-title">月別売上 2025</title>
  <desc>1月の¥150万から12月の¥675万への
        売上増加を示す棒グラフ</desc>

  <!-- 代替テーブルを提供 -->
</svg>
<table class="sr-only">
  <!-- アクセシブルなデータテーブル -->
</table>

アイコンシステム

html
<svg class="icon" aria-hidden="true" focusable="false">
  <use href="#icon-search"/>
</svg>
<span class="icon-label">検索</span>

VectoSolveとアクセシビリティ

アクセシビリティのためのクリーンな出力

VectoSolveはクリーンなSVGを生成します:

  • アクセシビリティ属性の追加が容易
  • 修正に適した構造
  • アクセシブルな実装に対応

変換後のアクセシビリティ

ベクタライズ後:

  1. 適切なロールを追加
  2. title/desc要素を含める
  3. ARIA属性を設定
  4. 支援技術でテスト

まとめ

アクセシブルなSVGはすべての人に恩恵をもたらします — よりセマンティックで、構造化され、メンテナンスしやすくなります。これらのパターンに従い定期的にテストすることで、ベクターグラフィックスが真にインクルーシブであることを保証できます。

アクセシブルなSVGを作成


WCAG要件SVG実装影響
テキスト代替(1.1.1)<title>と<desc>要素スクリーンリーダーが画像の目的を読み上げ
カラーコントラスト(1.4.11)UIグラフィックスに最低3:1ロービジョンユーザーに見える
キーボードアクセス(2.1.1)focusable=true + tabindexインタラクティブSVGがキーボードで到達可能
動きの軽減(2.3.3)prefers-reduced-motionメディアクエリ前庭障害のためにアニメーションを停止

Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

出典と参考文献

Tags:
アクセシビリティ
SVG
ARIA
スクリーンリーダー
インクルーシブデザイン
Share:

Try VectoSolve Now

Convert your images to high-quality SVG vectors with AI

AI-Powered Vectorization

Ready to vectorize your images?

Convert your PNG, JPG, and other images to high-quality, scalable SVG vectors in seconds.