全盲の方への配慮

スクリーンリーダーというジャンルのソフトが存在します。これは、 Windowsのメニュー、ダイアログ上のボタン等の文字、タイトルバー、 クライアント領域への文字列の表示、ヘルプファイルなどを、 音声で読み上げてくれるものです。日本語に対応しているものとしては、
ソフト名  95Reader for Windows95
発売元    システムソリューションセンターとちぎ TEL 0286-80-2000
定価      34800円
紹介URL   http://www.ssct.co.jp/95reader/

ソフト名  PC-Talker
発売元    高知システム開発      TEL 0888-73-6500
定価      38000円
PC-Talker試用記

ソフト名  VDM-100W/PC-Talker
発売元    アクセス・テクノロジー TEL0761-20-1144
定価      38000円
これはPC-TalkerのOEMだそうですが、操作性は全く違うそうです。
などがあります。 これらは全て、WAVEファイルの再生ができるマシンなら動作するはずです。

読み上げソフトを入手してテストまでするのは、仕事でもないかぎり金銭的にも困難だと思いますが、 具体的な方策としては、オーナードローのボタンなど、絵として表現される物には、 必ず文字列による名前をつけるなどがあります。(SetWindowText()等)

あと、「特殊なことをしない」というのも重要です。たとえば、Petzoldの本に、 メニューをビットマップで表示するというのがありますが、こんなことをされても 迷惑なだけです。文字列で表示していても、オーソドックスなやり方とは違うやり方で 表示されると、読み上げソフトが認識できないことがあるようです。

ペーパーマニュアル付きのソフトの場合、 その内容をすべて電子情報としても読めるようにすることも重要だと思います。 また、図などを使って分かりやすく説明するのは良いことですが、図に頼りすぎずに、 文章だけでも、ある程度の意味が分かるように書くことも必要でしょう。

弱視の方への配慮

Windows98の「マイクロソフト拡大鏡」は、ちょっと触ってみた感じでは、なかなか良いようですが、 Windows95からある「ユーザー補助」の「ハイコントラスト」は、 タイトルバーやメニューを拡大するだけで、クライアント領域までは拡大しません。 そこで、アプリ側の対策として、メニューやタイトルバーのフォントサイズを取得して、 それがある一定のサイズを超えていたら、 クライアント領域も拡大するというアイデアはいかがでしょう。

以下は、私のWAVRECの void resize(void) のコードの一部です。 システムフォントとメニューorタイトルバーのフォントのサイズを比較して、 1.5倍以上ならクライアント領域を2倍に拡大するためscaleという変数に値をセットしています。

		NONCLIENTMETRICS metrics;
		TEXTMETRIC tm;
		HDC hdc;
		int h=0,s;
		metrics.cbSize=sizeof(metrics);
		if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS,sizeof(metrics),&metrics,0))
			h=MAX(-metrics.lfMenuFont.lfHeight,-metrics.lfCaptionFont.lfHeight);
		hdc=GetDC(hwndApp);
		GetTextMetrics(hdc,&tm);
		s=tm.tmAscent;
		ReleaseDC(hwndApp, hdc);
		if (h>=s*3/2){
			scale=2;
		}else{
			scale=1;
		}
GetSystemMetrics()等で、システムのボタンのサイズ等を取得して、 クライアント領域のボタンサイズをこれに合わせるという方法もあると思います。 私のBMP2MONOでは、
    scrollberheight=GetSystemMetrics(SM_CXHSCROLL);
のようにしてシステムのスクロールバーのサイズを求め、これをもとに、 ボタンサイズ等を決めています。

「アクセシビリティガイドライン」等を 読んで、こういう発想が出てくるかどうかが、大事だと思います。

その他

などがあります。詳しくは、 リンク集の中の障害者とコンピュータをごらんください。