Aug 27, 2010

[Misc] システムの色覚異常への対応について

色覚異常対応について調べたのでメモ。

色覚異常

色覚異常には先天色覚異常と後天色覚異常がある。

先天色覚異常

先天赤緑色覚異常は先天色覚異常の中で最も多く存在し、赤系統や緑系統の色の弁別に困難が生じる人が多いといわれる。 日本人では男性の4.50%、女性の0.165%が先天赤緑色覚異常で、日本全体では約290万人が存在する。 白人男性では約8%が先天赤緑色覚異常であるとされる。
(Wikipedia - 色覚異常)
2型色覚(2型2色覚と2型3色覚)の人が間違えやすい組み合わせは、赤と緑、オレンジと黄緑(きみどり)、緑と茶、青と紫、ピンクと(しろ)・灰色、緑と灰色・黒です。 1型色覚(1型2色覚と1型3色覚)の場合これに、赤と黒、ピンクと青が加わります。
(目と健康シリーズ - 色覚の異常)

後天色覚異常

後天色盲は遺伝的背景に関わらず、誰にでも発症する可能性があるものが多いのが特徴と言える。 その原因は、角膜、水晶体、硝子体といった中間透光体の着色によるもの、網膜病変によるもの、緑内障によるもの、視神経病変によるもの、大脳性病変によるもの、心因性要因によるものなど様々であるが、何よりもすべての人に関係する問題として、加齢に伴う色覚の変化がある。

後天色盲でもっとも多い、後天青黄色盲の色感覚をまとめると次のようになる。
  • 青の範囲が広く、健康な眼の 青紫〜青〜青緑〜緑〜黄緑 までを青として知覚し、緑の感覚を失う。
  • 黄色は彩度が低下して白っぽく見える。
  • 低明度、低彩度の色は、ほとんど青または無彩色に見える。
  • 「黄色」→「白」、「緑」→「青または黒」、「茶」→「紫または黒」、「紫」→「青、茶、黒」、「青」→「黒」などの色誤認をする。

(色覚の多様性と視覚バリアフリーなプレゼンテーション - 色覚が変化すると、どのように色が見えるのか?)

Web サイトにおける色覚異常対応のガイドライン

w3c が策定している Web Content Accessibility Guidelines (WCAG) 2.0 に色覚異常対応に関する記載がある。ここでは Level A/AA/AAA の 3 レベルが定義されており、想定するユーザが必要とするレベルの対応を行う。

1.4.1 Use of Color: Color is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element. (Level A)
1.4.3 Contrast (Minimum): The visual presentation of text and images of text has a contrast ratio of at least 4.5:1, except for the following: (Level AA)
  • Large Text: Large-scale text and images of large-scale text have a contrast ratio of at least 3:1;
  • Incidental: Text or images of text that are part of an inactive user interface component, that are pure decoration, that are not visible to anyone, or that are part of a picture that contains significant other visual content, have no contrast requirement.
  • Logotypes: Text that is part of a logo or brand name has no minimum contrast requirement.
1.4.6 Contrast (Enhanced): The visual presentation of text and images of text has a contrast ratio of at least 7:1, except for the following: (Level AAA)
  • Large Text: Large-scale text and images of large-scale text have a contrast ratio of at least 4.5:1;
  • Incidental: Text or images of text that are part of an inactive user interface component, that are pure decoration, that are not visible to anyone, or that are part of a picture that contains significant other visual content, have no contrast requirement.
  • Logotypes: Text that is part of a logo or brand name has no minimum contrast requirement.

各レベルの詳細な情報は下記を参照。
Understanding Guideline 1.4
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast.html
Understanding Success Criterion 1.4.1 [Use of Color]
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-without-color.html
Understanding Success Criterion 1.4.3 [Contrast (Minimum)]
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html
Understanding Success Criterion 1.4.6 [Contrast (Enhanced)]
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast7.html


WCAG 2.0 準拠の評価

WCAG 2.0 の各レベルではコントラスト比が規定されているので、システムがそのコントラスト比を満たすことを確認する。 コントラスト比の算出方法は以下を参照。

WCAG 2.0 - contrast ratio
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html#contrast-ratiodef
WCAG 2.0 - relative luminance
http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
The Web KANZAKI - 色の組み合わせをチェックしてみる
http://www.kanzaki.com/docs/html/color-check

色覚異常をシミュレートする

ImageJ と VischeckJ を使用することで色覚異常をシミュレートすることができる。

ImageJ
http://rsb.info.nih.gov/ij/
Vischeck
http://www.vischeck.com/


ImageJ と VischeckJ のインストール

  1. ImageJ をダウンロード、解凍する。解凍先を $IMAGEJ_HOME とする。
  2. VischeckJ をダウンロード、解凍する。解凍先を $VISCHECKJ_HOME とする。
  3. $VISCHECKJ_HOME/*.class を $IMAGEJ_HOME/plugins/VischeckJ/ にコピーする。


シミュレーションの実施

  1. シミュレートしたい画面をキャプチャし、画像として保存する。
  2. ImageJ を起動し、画像を開く。
  3. Plugins > VischeckJ > &Vischeck Panel を選択。
          [ImageJ]
  4. Deuteranope(緑色覚異常)、Protanope(赤色覚異常)、Tritanope(青黄色覚異常) ボタンをクリックする。
          [imagej]
[original]
オリジナル
[deuteranope]
緑色覚異常
[protanope]
赤色覚異常
[tritanope]
青黄色覚異常

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 23, 2010

[Cloud] ApexHighlighter for SyntaxHighlighter

Salesforce の Apex コードをハイライト表示する JavaScript を作成してみた。詳細はこちら。 ApexHighlighter

Posted in Cloud | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 12, 2010

[Bookmark] Today's bookmark

[Library] HTML5.jp - レーダーチャート... JavaScript によるレーダーチャート。
[Library] A HTTP Proxy Server in 20 Lines of node.js Code... JavaScript による Proxy Server。
[Misc] 情報処理推進機構 - 安全なウェブサイトの作り方 改定第 4 版
[Library] Open Flash Chart 2... LGPL ライセンスの Flash Chart。
[Cloud] Salesforce Winter '11 Logo... Salesforce の次期リリースのロゴ決定。
[WebService] Web屋のネタ帳 - スマートフォン時代の電話番号認証の実装... 使う機会は無さそうだが面白いネタ。
Posted in Bookmark | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

[Misc] CSS による印刷制御に関するメモ

CSS による印刷制御に関して個人的に抑えておきたいことをメモ。

改ページ

page-break-before, page-break-after で改ページの制御が可能。 指定可能な値は auto、always、avoid、left、right のいずれか。

<div class="page" style="page-break-after: always;">
  ここが 1 ページ分。
</div>
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification - 13 Paged media
http://www.w3.org/TR/CSS2/page.html#page-break-props

A4 に印刷する場合は 649px x 891px

A4(210mm x 297mm) に印刷する場合は、1 ページを 649px x 891px 以内に抑える。

その他参考

参考になるサイトをメモ。素晴らしい情報に感謝。

ADP: 印刷用CSSの書き方(基本編)
http://adp.daa.jp/archives/000690.html
無限の翼 : IE6、7用対応:A4サイズで印刷出来るスタイルシート指定
http://mtw.cocotte.jp/blog/diary/html/2009/05/07-2234.php
PHP × Ajax = Cool CMS - [CSS] 印刷用ページを実装する方法
http://blog.aidream.jp/css/css-print-javascript-67.html
BlogでHTML日進月歩 - 印刷用CSSの導入
http://cellery.blog21.fc2.com/blog-entry-14.html

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 11, 2010

[Apple] MacOS X で秀丸エディタを使う方法

MacOS X の最大の弱点は良いテキストエディタが無い(見つからない?)ことだと思っている。 以前 Darwine メモ で Wine + 秀丸エディタを試した際は、起動は出来るが日本語表示と日本語入力が出来ないという状態であきらめた。 今回、MikuInstaller という Wine お手軽導入キットがあることを知ったので再度 MacOS X + 秀丸エディタにチャレンジしてみた。

MikuInstaller とは

MikuInstaller 公式サイト によると、

MikuInstaller は、 Wine を Intel 搭載 Macintosh に手軽に導入するためのキットです。
とのこと。

MikuInstaller のインストール

dmg をダウンロード、マウントして、MikuInstaller.app を /Applications にコピーするだけ。 今回は "MikuInstaller-20080803.dmg" を使用した。 ちなみに、MacOS X は SnowLeopard (10.6.4) を使用している。

秀丸エディタのインストール

秀丸エディタのページからインストーラパッケージをダウンロード(今回は "hm801a_signed.exe" を使用した)し、 ダウンロードした exe を /Applications/MikuInstaller.app にドロップ。
しばらくすると秀丸エディタインストーラのダイアログが開く。
[インストーラが開始された]

次の様な警告ダイアログが表示されるかもしれないが、そのまま続行して良い。
[警告ダイアログ]

後は普通にインストールを行う。インストールが完了したら /Users/me/Applications/MikuInstaller 内に "秀丸.app" が作成されている。
[秀丸.app が作成されている]

秀丸エディタの起動

/Users/me/Applications/MikuInstaller/秀丸.app を起動するだけ。
[秀丸が起動!!]

今回は日本語表示、日本語入力共に可能だった。 MacOS X 側のストレージにあるファイル読込・書出も可能。

素晴らしい!!!

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 09, 2010

[WebService] mov ファイルを Google Sites に埋め込む Google Gadget

Google Sites に mov ファイルを埋め込む Google Gadget を作成したのでメモ。 URL はこちら。

http://www.in-vitro.jp/software/google/gadget/ggadget_qtobject.xml

実際の埋め込みは QTObject embed という外部のライブラリにお任せしている。多謝。

QTObject embed
http://blog.deconcept.com/code/qtobject/qtobject.html
オリジナルガジェットの作成
http://code.google.com/intl/ja/apis/gadgets/docs/basic.html

使い方

  1. 予め Google Sites のページを作成し、mov ファイルとタイトル画像を添付しておく。
  2. Google Sites の編集画面で Insert > more gadgets... > Add gadget by URL を選択。
  3. 上記 URL を入力して "Add"。
  4. mov のタイトル、 mov の URL、タイトル画像の URL、mov の width、height(実際のサイズより少し大きめにする) を入力

Posted in WebService | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 04, 2010

[Flash] Flash on IE6 は gzip 圧縮されたデータを読み込めない

意外と難儀な問題に当たったのでメモ。

現象

IE6 上の Flash Player から ActionScript の URLLoader 等を利用してサーバにデータを取りに行く際、 サーバが gzip で圧縮されたデータを返すと IOErrorEvent.IO_ERROR (Error #2032) が発生する。

回避方法

ActionScript の URLRequestHeader クラスには Accept-Encoding は指定できないとリファレンスに記載があるのでクライアントサイドでの回避は困難。 但し、未検証なので絶対に無理かは不明。 ざっと見た限りでは皆さんサーバサイドで gzip を OFF にして回避している模様。

・・・今の環境だとそんな設定許されないから悩ましい。

関連情報

dmpmorg の日記さんに丁寧な解説があった。多謝!!!

dmpmorgの日記 - FlexのURLLoaderでIE6だけ「#2032: ストリームエラー」 原因はgzip?CommentsAdd Star
http://d.hatena.ne.jp/dmpmorg/20090612/1244795718
Flash not recieving xmls when embedded in IE and GZIP compression is enebled in IIS (server sending xml)
http://bugs.adobe.com/jira/browse/FP-330
GZip compression + Flash Player + IE6 = Nightmare
http://www.ultrashock.com/forums/data-communication/gzip-compression-flash-player-ie6-nightmare-122911.html

Posted in Flash | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

[Flash] Open Flash Chart でデータを HTML 内に埋め込む方法

Open Flash Chart でチャート用の JSON データを HTML 内に埋め込む方法をメモ。

<script type="text/javascript" language="javascript" src="swfobject.js" ></script>
<script type="text/javascript">
  var chartData = '{"elements":[{"type":"line","values":[1,2,3,4]}]}'; // ここにチャート用の JSON データを埋め込む。
  swfobject.embedSWF("open-flash-chart.swf", "chart", "300", "300", "9.0.0", "expressInstall.swf", {"get-data":"getChartData"});
  function getChartData() {
    return chartData;
  }
</script>
<div id="chart"></div>

"get-data" に JSON を返す JavaScript の function を指定するだけ。

詳細な情報は以下を参照のこと。
Advanced : Many charts on one page
http://teethgrinder.co.uk/open-flash-chart-2/adv-js-2-charts.php

Posted in Flash | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |