SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
SVG MANIAX
Scalable Vector Graphics
Vol. 3
松 田 直 樹
CCO, Web Designer
SVGの特徴って?
画像 であり、 文書 である
XML文書だから
すべての図形や画像は "要素" となる
path 要素 line 要素 rect 要素
circle 要素 ellipse 要素 polygon 要素 image 要素
text 要素
Lorem
ipsum
dolor
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://
www.w3.org/1999/xlink" viewBox="0 0 100 100">
<path d="M0,42.197C0,18.892,18.892,0,42.197 ... "/>
<rect x="0" y="20" width="10" height="10"/>
<polygon points="81.098,61.017 88.796,76.614 ... "/>
<text>Lorem ipsum dolor</text>
</svg>
文書であるということは
テキストノードを含めることができる
マシンリーダブル
アクセシビリティを確保できる
HTML5 + inline SVG
における
アクセシビリティ
SVGの最大の利点?
画像の「中身」を
アクセシブルにできる
画像といえば、代替テキスト
JPEG や PNG の代替テキスト
alt="ハンバーガー"
longdesc="http://
example.com/desc1"
SVG の代替?テキスト
<svg viewBox="0 0 100 100">
<title>
ハンバーガー
</title>
<desc>
ハンバーガーのフラットな
イラストアイコン
</desc>
…
</svg>
SVG の代替テキスト
title 要素 / desc 要素
それぞれの コンテナ要素 や グラフィックス要素 には個別に、
desc 要素, またはテキストのみの説明を与える title 要素,
あるいはそれらの両方を指定することができる。
SVG内のそれぞれの要素にも使える
<g>
<title>ハンバーガー</title>
<desc>…</desc>
</g>
<g>
<title>ホットドッグ</title>
<desc>…</desc>
</g>
<g>
<title>ドーナッツ</title>
<desc>…</desc>
</g>
<rect x="10" y="10"
width="20" height="20">
<title>すごく四角い</title>
<desc>…</desc>
</rect>
<g x="10" y="10">
<title>たくさん丸い</title>
<desc>…</desc>
<path …>
<circle …>
<circle …>
<circle …>
</g>
図形などの要素にも グループなどのコンテナ要素にも
グループ化
<svg viewBox="0 0 100 100">
<title>フードメニュー</title>
<desc>当店のフードメニューのイラストアイコン</desc>
<g>
<title>ハンバーガー</title>
<desc>人気No.1。オリジナルのパティとトマトソース…</desc>
</g>
<g>
<title>ホットドッグ</title>
<desc>カリッと焼いた粗挽きソーセージのホット…</desc>
</g>
<g>
<title>ドーナッツ</title>
<desc>外はカリッ。中はモチモチ。そこそこヘルシー…</desc>
</g>
…
</svg>
でも、title 要素と desc要素、
スクリーンリーダーが読んでくれない
SVG のスクリーンリーダー対応
role 属性 / aria-* 属性
を使いましょう
WebコンテンツおよびWebアプリケーション、
特にRIAを
あらゆるユーザにとってよりアクセシブルにするもの
SVG のスクリーンリーダー対応
role 属性 aria-* 属性
要素の「役割」を
定義する
要素の「状態」を
定義する
<svg viewBox="0 0 100 100"
role="img"
aria-labelledby="title desc">
<title id="title">ハンバーガー</title>
<desc id="desc">ハンバーガーのフラットなイ
ラストアイコン</desc>
…
</svg>
role と aria-labelledby で対応しましょう
<svg viewBox="0 0 100 100"
role="img"
aria-labelledby="title desc">
<title id="title">ハンバーガー</title>
<desc id="desc">トマトとレタス、チーズのハ
ンバーガーのイラスト</desc>
…
</svg>
SVG のスクリーンリーダー対応
ハンバーガー トマトとレタス、チーズのハンバーガーのイラスト イメージ
SVG のスクリーンリーダー対応
<g role="img" aria-labelledby="title1 desc1">
<title id="title1">四角</title>
<desc id="desc1">黒い正方形</desc>
<rect width="100" height="100"/>
</g>
<g role="img" aria-labelledby="title2 desc2">
<title id="title2">丸</title>
<desc id="desc2">黒い正円</desc>
<circle cx="170" cy="50" r="50"/>
</g>
<g role="img" aria-labelledby="title3 desc3">
<title id="title3">三角</title>
<desc id="desc3">黒い正三角形</desc>
<polygon points="0,207 50,120 99.999,207 "/>
</g>
<g role="img" aria-labelledby="title4 desc4">
<title id="title4">星形</title>
<desc id="desc4">黒い星</desc>
<polygon points="169.987,112.12 185.438,143.427 219.987,148.447
194.987,172.816 200.889,207.226 169.987,190.98 139.086,207.226
144.987,172.816 119.987,148.447 154.536,143.427"/>
</g>
SVG のスクリーンリーダー対応
<g role="img" aria-labelledby="title1 desc1">
<title id="title1">四角</title>
<desc id="desc1">黒い正方形</desc>
<rect width="100" height="100"/>
</g>
<g role="img" aria-labelledby="title2 desc2">
<title id="title2">丸</title>
<desc id="desc2">黒い正円</desc>
<circle cx="170" cy="50" r="50"/>
</g>
<g role="img" aria-labelledby="title3 desc3">
<title id="title3">三角</title>
<desc id="desc3">黒い正三角形</desc>
<polygon points="0,207 50,120 99.999,207 "/>
</g>
<g role="img" aria-labelledby="title4 desc4">
<title id="title4">星形</title>
<desc id="desc4">黒い星形</desc>
<polygon points="169.987,112.12 185.438,143.427 219.987,148.447
194.987,172.816 200.889,207.226 169.987,190.98 139.086,207.226
144.987,172.816 119.987,148.447 154.536,143.427"/>
</g>
四角 黒い正方形 イメージ
丸 黒い正円 イメージ
三角 黒い正三角形 イメージ
星形 黒い星 イメージ
• SVGのtitle要素は、仕様書のとおりだと、
hoverでツールチップ表示されるべき

(UAによる実装)
• ***.svg という単体のSVGファイルでは、
まったくスクリーンリーダーで読まれない
小ネタ
小ネタ
Authors should always provide a ‘title’ child element to the outermost svg
element within a stand-alone SVG document. The ‘title’ child element to an
‘svg’ element serves the purposes of identifying the content of the given SVG
document fragment. Since users often consult documents out of context,
authors should provide context-rich titles.
独立した SVG 文書の 最も外側の svg 要素 に対し
常に、 title 要素を子要素として与えるべきである
http://www.w3.org/TR/SVG/struct.html#DescriptionAndTitleElements
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
詳細は早川さんのブログにて
http://blog.e-riverstyle.com/2014/12/svg.html
SVGの中でHTMLを使う
SVGの中で
「見出し」的なテキストを使いたい
SVG の中でHTMLを使う
foreignObject 要素 + HTMLの要素
が使える
foreignObject要素は、グラフィックの描画に、
SVGとは異なる名前空間の要素(HTMLなど)を
用いることができる要素
0
30
60
90
120
150
渡辺田中高橋鈴木佐藤
例えば、こんなグラフ
0
30
60
90
渡辺田中高橋鈴木佐藤
<g>
<title id="point-sato"">230点</title>
<text x="450" y="370">佐藤</text>
<rect x="450" y="123" width="70" height="230"
role="img" aria-labelledby="point-sato"/>
</g>
0
30
60
90
120
150
渡辺田中高橋鈴木佐藤
このままだと、全部読み上げられるのに
時間がかかってしまう
0
30
高橋鈴木佐藤
お、なんかこいつ、見出しっぽい
0
30
渡辺田中高橋鈴木佐藤
<g>
<title id="point-sato">86点</title>
<foreignObject x="76" y="273" width="40" height="25">
<h3>佐藤</h3>
</foreignObject>
<rect x="67" y="116 width="55" height="130"
role="img" aria-labelledby="point-sato"/>
</g>
0
30
60
90
120
渡辺田中高橋鈴木佐藤
VoiceOver等の
「見出し間スキップ」機能が使える
DEMO
アクセシブルにできるのは分かったが
どんな画像に向いているのか?
こんな一枚画像までもがアクセシブルに
地図もそのままアクセシブルに
凝ったナビゲーションもアクセシブルに
今後のブラウザ対応にも期待
SVG Accessibility API Mappings 草案公開
http://www.w3.org/TR/2015/WD-svg-aam-1.0-20150226/
画像の「中身」を
アクセシブルにできること
SVGの最大の利点
松田直樹
ありがとうございました
SVG MANIAX
Scalable Vector Graphics
Vol. 3

Más contenido relacionado

La actualidad más candente

実はできている!? Webアクセシビリティ
実はできている!? Webアクセシビリティ実はできている!? Webアクセシビリティ
実はできている!? Webアクセシビリティ力也 伊原
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜Yoshiki Nakagawa
 
正しいものを正しくつくる
正しいものを正しくつくる正しいものを正しくつくる
正しいものを正しくつくるtoshihiro ichitani
 
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門Shuji Kikuchi
 
XPは何を伝えたかったんだと思う?
XPは何を伝えたかったんだと思う?XPは何を伝えたかったんだと思う?
XPは何を伝えたかったんだと思う?Masanori Kado
 
アジャイルジャーニー
アジャイルジャーニーアジャイルジャーニー
アジャイルジャーニーtoshihiro ichitani
 
ユーザーインタビューするときは、どうやらゾンビのおでましさ
ユーザーインタビューするときは、どうやらゾンビのおでましさユーザーインタビューするときは、どうやらゾンビのおでましさ
ユーザーインタビューするときは、どうやらゾンビのおでましさYoshiki Hayama
 
あなたの価値を高めるWebアクセシビリティ
あなたの価値を高めるWebアクセシビリティあなたの価値を高めるWebアクセシビリティ
あなたの価値を高めるWebアクセシビリティ力也 伊原
 
Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)Tomoaki Uchida
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Masahito Zembutsu
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
Ganglia のUIにGrafanaを追加する話
Ganglia のUIにGrafanaを追加する話Ganglia のUIにGrafanaを追加する話
Ganglia のUIにGrafanaを追加する話KLab Inc. / Tech
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRecruit Technologies
 
Go 製リアルタイムサーバーの Kubernetes での運用について
Go 製リアルタイムサーバーの  Kubernetes での運用についてGo 製リアルタイムサーバーの  Kubernetes での運用について
Go 製リアルタイムサーバーの Kubernetes での運用についてKairiOkumura
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)NTT DATA Technology & Innovation
 

La actualidad más candente (20)

実はできている!? Webアクセシビリティ
実はできている!? Webアクセシビリティ実はできている!? Webアクセシビリティ
実はできている!? Webアクセシビリティ
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
 
正しいものを正しくつくる
正しいものを正しくつくる正しいものを正しくつくる
正しいものを正しくつくる
 
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
[JAWS DAYS 2019] Amazon DocumentDB(with MongoDB Compatibility)入門
 
XPは何を伝えたかったんだと思う?
XPは何を伝えたかったんだと思う?XPは何を伝えたかったんだと思う?
XPは何を伝えたかったんだと思う?
 
アジャイルジャーニー
アジャイルジャーニーアジャイルジャーニー
アジャイルジャーニー
 
ユーザーインタビューするときは、どうやらゾンビのおでましさ
ユーザーインタビューするときは、どうやらゾンビのおでましさユーザーインタビューするときは、どうやらゾンビのおでましさ
ユーザーインタビューするときは、どうやらゾンビのおでましさ
 
あなたの価値を高めるWebアクセシビリティ
あなたの価値を高めるWebアクセシビリティあなたの価値を高めるWebアクセシビリティ
あなたの価値を高めるWebアクセシビリティ
 
Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
AWSのNoSQL入門
AWSのNoSQL入門AWSのNoSQL入門
AWSのNoSQL入門
 
Ganglia のUIにGrafanaを追加する話
Ganglia のUIにGrafanaを追加する話Ganglia のUIにGrafanaを追加する話
Ganglia のUIにGrafanaを追加する話
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
なぜ企業はWebアクセシビリティに取り組むのか?
なぜ企業はWebアクセシビリティに取り組むのか?なぜ企業はWebアクセシビリティに取り組むのか?
なぜ企業はWebアクセシビリティに取り組むのか?
 
Go 製リアルタイムサーバーの Kubernetes での運用について
Go 製リアルタイムサーバーの  Kubernetes での運用についてGo 製リアルタイムサーバーの  Kubernetes での運用について
Go 製リアルタイムサーバーの Kubernetes での運用について
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
ServiceとRepository
ServiceとRepositoryServiceとRepository
ServiceとRepository
 
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
 

Similar a HTML5 と SVG で考える、これからの画像アクセシビリティ

SVG MANIAX - CSS Nite After dark7
SVG MANIAX - CSS Nite After dark7SVG MANIAX - CSS Nite After dark7
SVG MANIAX - CSS Nite After dark7Naoki Matsuda
 
SVG MANIAX Ver.2 - Mars vanilla
SVG MANIAX Ver.2 -  Mars vanillaSVG MANIAX Ver.2 -  Mars vanilla
SVG MANIAX Ver.2 - Mars vanillaNaoki Matsuda
 
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたいAngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたいYosuke Onoue
 
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソンd3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン圭輔 大曽根
 
D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13Minoru Chikamune
 
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーションAngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーションYosuke Onoue
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013Ryo Sakamoto
 
Data Visualization meetup 2017
Data Visualization meetup 2017Data Visualization meetup 2017
Data Visualization meetup 2017清水 正行
 
W3C日本会員会議 2013 12/17 TPAC2013 SVGWG活動報告
W3C日本会員会議 2013 12/17 TPAC2013 SVGWG活動報告W3C日本会員会議 2013 12/17 TPAC2013 SVGWG活動報告
W3C日本会員会議 2013 12/17 TPAC2013 SVGWG活動報告Satoru Takagi
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションD3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションKohei Kadowaki
 
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーションSVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーションKohei Kadowaki
 
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」Naoki Matsuda
 
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみるインラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみるKohei Kadowaki
 

Similar a HTML5 と SVG で考える、これからの画像アクセシビリティ (20)

SVG MANIAX - CSS Nite After dark7
SVG MANIAX - CSS Nite After dark7SVG MANIAX - CSS Nite After dark7
SVG MANIAX - CSS Nite After dark7
 
SVG MANIAX Ver.2 - Mars vanilla
SVG MANIAX Ver.2 -  Mars vanillaSVG MANIAX Ver.2 -  Mars vanilla
SVG MANIAX Ver.2 - Mars vanilla
 
Gtug girls-20140828
Gtug girls-20140828Gtug girls-20140828
Gtug girls-20140828
 
4D Tags
4D Tags4D Tags
4D Tags
 
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたいAngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
 
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソンd3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン
 
CSS3 Design Recipe
CSS3 Design RecipeCSS3 Design Recipe
CSS3 Design Recipe
 
D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13
 
Aaなゲームをjsで
AaなゲームをjsでAaなゲームをjsで
Aaなゲームをjsで
 
Aaなゲームをjsで
AaなゲームをjsでAaなゲームをjsで
Aaなゲームをjsで
 
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーションAngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 
Data Visualization meetup 2017
Data Visualization meetup 2017Data Visualization meetup 2017
Data Visualization meetup 2017
 
W3C日本会員会議 2013 12/17 TPAC2013 SVGWG活動報告
W3C日本会員会議 2013 12/17 TPAC2013 SVGWG活動報告W3C日本会員会議 2013 12/17 TPAC2013 SVGWG活動報告
W3C日本会員会議 2013 12/17 TPAC2013 SVGWG活動報告
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションD3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーション
 
Arctic.js
Arctic.jsArctic.js
Arctic.js
 
HTML5 on ASP.NET
HTML5 on ASP.NETHTML5 on ASP.NET
HTML5 on ASP.NET
 
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーションSVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーション
 
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」
 
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみるインラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみる
 

HTML5 と SVG で考える、これからの画像アクセシビリティ