スクリーンリーダー特集:ふりがなをつけたページでも、スクリーンリーダーに正しく読ませることができます!

さんかくすと文がえます

えすとれ先輩
えすとれ先輩

このページは、以前いぜん「スクリーンリーダーモードのつくかた」とだいして3つの記事きじ連載れんさいした内容ないようのまとめです。作成さくせい必要ひつよう工程こうてい工夫くふうのみを抜粋ばっすいしています。

このページではこんな問題もんだい解決かいけつができます。これらを解決かいけつする工夫くふうを、まなキキでは「スクリーンリーダーモード」とんでいます。

  • スクリーンリーダー(VoiceOver、PC-Talkerなど)の利用りよう想定そうていしたページだが、難読なんどく漢字かんじ固有名詞こゆうめいしなどのかた間違まちがっているので補正ほせいしたい。
  • キッズページを作成さくせいしてふりがなをつけたが、スクリーンリーダーでげさせると漢字かんじとふりがなを二重にじゅうげてしまう。二重にじゅうみ。文章ぶんしょう途切とぎれる。

簡単かんたん仕組しく

ふりがなのルビタグをふくむ、Webページのソースコード構成こうせいがスクリーンリーダーにとってげにくくなっていることが二重にじゅうみの原因げんいんです。Javascriptを使つかって一時的いちじてきにHTMLソースをえることで、スクリーンリーダーのげに最適化さいてきかします。えのついでに、固有名詞こゆうめいしなどはふりがなのほうませるようにすれば誤読ごどくもなくなります。

「HTMLソースのえ」はかくクライアントのブラウザじょう・そのページでのみ実行じっこうされ、サーバがわには影響えいきょうしません。ページを移動いどうしたり、さいみするたびにスクリーンリーダーモードはリセットとなります。

つくりかた

HTMLファイル

スクリーンリーダーモードをえるボタン

えすとれ先輩
えすとれ先輩

Webページの可能かのうかぎうえ配置はいちしてください。スクリーンリーダーを使つかってアクセスしたときに、さき変更へんこうできるようにしましょう。見出みだ要素ようそかこむことで、見出みだしジャンプ機能きのうでも確実かくじつにみつけることができます。

<!-- スクリーンリーダー向け ふりがなを取り払ってテキストをまとめる -->
<div class="visually-hidden">
  <h5>
    <button id="sr" type="button">
      <span>スクリーンリーダーモード。このボタンを押すと、
      ご利用中のスクリーンリーダーの読み上げをスムーズにできます</span>
    </button>
  </h5>
</div>

ふりがなをつける箇所かしょ

<!-- 基本の振り方。スクリーンリーダーモードでは「四月一日」が残り、読み上げられます -->
<ruby>四月一日<rt>わたぬき</rt></ruby>

<!-- 漢字ではなくふりがなを読ませる。スクリーンリーダーモードでは「わたぬき」が残り、読み上げられます -->
<ruby class="read_kana">四月一日<rt>わたぬき</rt></ruby>
えすとれ先輩
えすとれ先輩

『四月一日(わたぬき)』、のような括弧かっこきによるふりがなには対応たいおうできません。ルビタグをご利用りようください。

CSSファイル

えすとれ先輩
えすとれ先輩

スクリーンリーダーモードのボタンをせる必要ひつようはないので、かくしてしまいましょう。リンクさきのCSSをうつしてください。

Javascriptファイル

「スクリーンリーダーモード」のボタンをしたとき処理しょり

/*
 * スクリーンリーダーモード
 */
$("button#sr").click(function() {
  if ($('body').hasClass( 'sr_mode_flg' )) {
    // <ruby>タグを復活させるため、ページを再読み込みする
      location.reload();
	
  } else {
    // スクリーンリーダー向けにふりがなデータを編集する
      $('ruby').each(function(){
        // thisを消す前に親要素を取得しておく
        var parent = $(this).parent().get(0)

        if (parent !== undefined && parent !== null) {

          var readText;

          if ( $(this).hasClass('read_kana') ) {
            // ふりがなを読み上げテキストとして取得する場合
            readText = ' '+$('rt', this).text()+' ';
        } else {
          // 漢字を読み上げテキストとして取得する場合

          // <ruby>直下の漢字だけ取得できればいいのでふりがなは削除
          $(this).children().remove();
          readText = $(this).text();

        }
        // 自分の要素の手前に読み上げテキストを配置し、<ruby>タグ自身は削除
        $(this).before(readText);
        $(this).remove();					

        // 親のテキストをひとかたまりにする
        parent.normalize();
      } 
      /*
       *  <ruby>タグに誤りがある場合でも、スキップして最後まで処理を終わらせる
       *  スクリーンリーダーの読み&画面表示がおかしくなるので発見次第本文を修正すること。
       */
    });

    // ボタンのテキストを変更し、目印のclassをつける
      $("#sr>span").text("変更完了しました。ページを再読み込みするか、他のページに移動すると元に戻ります");
      $('body').toggleClass( 'sr_mode_flg' ); 
	
      //<ruby>タグを消してしまったので、ふりがなボタンは隠す
      $("#rubyChange").hide();
    }
});
えすとれ先輩
えすとれ先輩

末尾まつびかくしている「ふりがなボタン(ふりがなえボタン)」については後述こうじゅつしています。必要ひつようがあればそちらもご利用りようください。

スクリーンリーダーモードの利用りようについて、まなキキからのおねが

スクリーンリーダーモードの制作方法せいさくほうほうは、無料むりょう公開こうかい提供ていきょういたします。

まなキキのおもいにご賛同さんどういただけましたら、是非ぜひ自身じしんのWebサイトにスクリーンリーダーモードを設置せっちください。

スクリーンリーダーモードの制作方法せいさくほうほうのシェアも、歓迎かんげいいたします!

設置せっちいたださいには、Webサイトのどこかに「まなキキプロジェクト」(津田塾大学つだじゅくだいがくインクルーシブ教育きょういく支援室しえんしつLearning Crisis研究会けんきゅうかい提供ていきょう)と出典しゅってん明記めいきをおねがいたします。

上記じょうき表記ひょうきは、スクリーンリーダーモードを制作せいさくしたわたしたちのはげみになります!

*なお、スクリーンリーダーモードの制作方法せいさくほうほうは、2020ねん10がつ22にち・23にち開催かいさいの「だい108かい令和れいわ2年度ねんどだい3かい福祉ふくし情報じょうほう工学こうがく研究会けんきゅうかい」においてまなナビメンバーが報告ほうこくおこなっております。

おまけ:ふりがなえボタン

えすとれ先輩
えすとれ先輩

ふりがなえボタンをもうけることで、ふりがなをせたりかくしたりできます。えにかかわらず、つね表示ひょうじすることもできます。

HTMLファイル

ふりがなえボタン

<!-- ふりがな切り替えボタン -->
<button id="rubyChange" type="button">
  <span>ふりがなをつける</span>
</button>

ふりがなをつける箇所かしょ

<!-- 基本の振り方。スクリーンリーダーモードでは「四月一日」が残り、読み上げられます -->
<ruby>四月一日<rt>わたぬき</rt></ruby>

<!-- 常にふりがなを表示。スクリーンリーダーモードでは「四月一日」が残り、読み上げられます -->
<ruby class="rb_display_always">四月一日<rt>わたぬき</rt></ruby>

<!-- 漢字ではなくふりがなを読ませる。スクリーンリーダーモードでは「わたぬき」が残り、読み上げられます -->
<ruby class="read_kana">四月一日<rt>わたぬき</rt></ruby>

<!-- classは複数指定できます。常にふりがなを表示。スクリーンリーダーモードでは「わたぬき」が残り、読み上げられます -->
<ruby class="rb_display_always read_kana">四月一日<rt>わたぬき</rt></ruby>

CSSファイル

/* ふりがな */
button#rubyChange{
  padding:7px;
  margin:0px;
  line-height: 100%;
}
button#rubyChange > span{
  line-height: 100%;
}
/* ふりがなが非表示のとき */
ruby {
  display:inline;
}
rt {
  display:none;
}
rp {
  opacity:0;
}
/* ふりがなが表示されているとき、いつも見せたいとき */
.ruby_flag ruby,
ruby.rb_display_always{
  display:inline;
  /* firefox向け設定 */
  ruby-position: over;
  ruby-align: center;
  display:ruby !important;
}
.ruby_flag rt,
ruby.rb_display_always rt{
  line-height: 100% !important;
  display:block;
  /* firefox向け設定 */
  display:ruby-text !important;
}
.ruby_flag rp,
ruby.rb_display_always rp{
  opacity:1;
}

Javascriptファイル

/*
 *  振り仮名切り替えボタンを押した時の処理
 */
$("button#rubyChange").click(function() {
  $('body').toggleClass( 'ruby_flag' ); 

  if ($('body').hasClass( 'ruby_flag' )) {
    $("#rubyChange>span").text("ふりがなをけす");
  }else{
    $("#rubyChange>span").text("ふりがなをつける");
  }
});

関連かんれん記事きじ

えすとれ先輩
えすとれ先輩

本記事ほんきじ内容ないよう初出しょしゅつは「スクリーンリーダー特集とくしゅう:スクリーンリーダーモードのつくかた」です。制作せいさくいたった経緯けいいふくめて紹介しょうかいしています。

タイトルとURLをコピーしました