エントリー本文
Slider によるフォントサイズ変更でアクセシビリティを向上させる
以前ご紹介した Slider を利用して、ページのフォントサイズを変更するカスタマイズをご紹介します。
下のサンプルをクリックし、ページ左上にある Slider を操作すると、中央カラムおよびサイドバーにある文字のフォントサイズをダイナミックに変更することができます。
Slider は矢印キー・PageUp/PageDown・マウススクロール(これは IE のみ)でも操作可能です。IE より Firefox の方がよりスムーズに動きます。
ここでは Movable Type 用公開テンプレートを用いて、フォントサイズ変更用 Slider の設定方法をご紹介します。Slider および本カスタマイズはブログツールやテンプレートに依存するものではありませんので、他のブログツールや異なるテンプレートでも利用可能です。
Slider のダウンロード・インストールについては「Slider の利用方法」の2項をご覧ください。
1.Slider 用ライブラリ・CSSのインクルード
テンプレートの /head の直前に下記のタグを追加します。
<link type="text/css" rel="stylesheet" href="slider/css/bluecurve/bluecurve.css" />
<script type="text/javascript" src="slider/js/range.js"></script>
<script type="text/javascript" src="slider/js/timer.js"></script>
<script type="text/javascript" src="slider/js/slider.js"></script>
<style type="text/css">
.horizontal {
width: 155px;
height: 20px;
}
</style>
.horizontal は Slider をサイドバーの幅に合わせるため、slider/css/bluecurve/bluecurve.css の設定を上書きしています。
2.Slider の設定
テンプレートのサイドバー部分に下記のタグを追加します。この部分に Slider が表示されます。
<div class="slider" id="slider-1" tabIndex="1">
<input class="slider-input" id="slider-input-1" name="slider-input-1" />
</div>
3.フォントサイズ用スクリプトの設定
下記のスクリプトをテンプレートの /body の直前に追加します。
<script type="text/javascript">
//<![CDATA[
var s = new Slider(document.getElementById("slider-1"), document.getElementById("slider-input-1"));
s.onchange = function () {
document.body.style.fontSize = (100 + (s.getValue()*2)) + '%';
};
s.setValue(25);
window.onresize = function () {
s.recalculate();
};
//]]>
</script>
フォントサイズを決定しているのは、
document.body.style.fontSize = (100 + (s.getValue()*2)) + '%';
の部分で、s.getValue() がスライドバーの移動によって実際に値を取得している部分です。
また、スライドバーのデフォルト位置については、
s.setValue(25);
で設定しています。この両者を変更することで、フォントサイズの増減率やスライドバーのデフォルト位置を変更することができます。色々試してみてください。
4.CSS 修正
スタイルシートで設定している font-size プロパティの値を px 指定から % 指定に変更します。フォントサイズ変更方式については下記の記事を参考にさせて頂きました。ありがとうございました。
以下、サンプルで使用している公開テンプレートにおける変更箇所です。青は追加または変更を示します。.blog セレクタの font-size プロパティは削除してください。
カスタマイズに無関係のプロパティは省略していますので予めご了承ください。
body {
font-size: 100%;
}
.blog {
font-size: small;
}
.date {
font-size: 55%;
}
.entry {
font-size: 62%;
}
.entry-header {
font-size: 93%;
}
.entry-footer {
font-size: 72%;
}
.sidetitle {
font-size: 52%;
}
.side {
font-size: 52%;
}
- Movable Type でブログを複数作成する
- サブカテゴリーリストのエクスプローラ風折りたたみ
- Slider の利用方法
- Movable Type が WordPress に負けた本当の理由
- Movable Type で複数ブログを検索する
- ユーティリティスクリプト(その1:フォントサイズ切り替え)
- Movable Type(MT)テンプレート
- WordPress のコメントをページ分割する Paged Comments Plugin
- Movable Type でサブドメインを利用する場合の設定
- CSS のフォントサイズ指定が table に反映されない問題
- Accordion で特定のメニューをデフォルト表示する
- 「JavaScript で文字をトリミングする(改善版)」バージョンアップ
- dtree のサブカテゴリーリストにブログ記事タイトルを表示する for Movable Type
- Parallax Backgrounds で背景画像のスクロール速度を変える
- prototype.js と pngfix.js の競合を解消する
- JavaScript の for 文のパフォーマンスを改善する
- Google マップの貼り付け用 HTML を valid にする
- Movable Type 4 の透過 PNG ロゴを IE6 以下のブラウザで透過する
- ツリー表示 JavaScript 「dTree」詳解
- dTree によるサブカテゴリーリスト for Movable Type
- HighSlide JS と prototype.js の競合を解消する
- HighSlide JS の onclick 属性を JavaScript で登録する
- コメント投稿時にフォームボタンをグレーアウトする for Movable Type
- Slider の利用方法
- Highslide JS でサムネイル画像を拡大表示する
- JavaScript で文字をトリミングする(改善版)
- JavaScript で文字をトリミングする
- BlogPeople 等のリンクリストによる表示の遅延を解消する(その1:JavaScript編)
- ドラッグ&ドロップできるサイドメニューの折りたたみ(その2:ブログへの適用)
- ドラッグ&ドロップできるサイドメニューの折りたたみ(その1:基本設定)
