スクリーンリーダー特集:スクリーンリーダーモードの作り方その(1)

▶(さんかく) を押(お)すと文が増(ふ)えます

H松
H松

こんにちは。今回こんかいはみなさまに、まなキキ独自どくじの工夫くふう、「スクリーンリーダーモード」の作つくり方かたを解説かいせつしていきたいと思おもいます!

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

ふりがながあっても、スクリーンリーダーが正ただしく読よみ上あげを行おこなうことができる工夫くふうです。Webサイトを作つくる人ひとが、「この漢字かんじはこう読よんでほしい!」と思おもった場合ばあい、スクリーンリーダーの読よみ上あげ方かたを指定していすることもできます。

こうした工夫くふうは、おそらく、日本初にほんはつの取とり組くみだと思おもいます。

N川さん
N川さん

この記事きじを読よんで頂いただければ、プログラミングの知識ちしきがない方かたでも、ご自身じしんのサイトにスクリーンリーダーモードを導入どうにゅう頂いただけます!是非ぜひ是非ぜひ、ご一読いちどくください。

スクリーンリーダーモードの作つくり方かたを公開こうかいする理由りゆう

今いままで見過みすごされてきた、ふりがなとスクリーンリーダーの読よみ上あげの共存きょうぞん。

まなキキの制作せいさくを開始かいしした当初とうしょ、ふりがなをつけた途端とたんにスクリーンリーダーの読よみ上あげの音おとがおかしくなった!という大問題だいもんだいが起おこりました。解決かいけつ方法ほうほうを探さがした私わたしたちでしたが、「ふりがな(ルビ)とスクリーンリーダーの相性あいしょうが悪わるいらしい」というコメントは見みつかっても、どのようにしたら解決かいけつできるのかを説明せつめいしているサイト・研究けんきゅうは見みつかりませんでした……。

N川さん
N川さん

実じつは、ルビ(ふりがな)とスクリーンリーダーの読よみ上あげの共存きょうぞん方法ほうほうを考かんがえる工夫くふうは今いままで十分じゅうぶんになされてこなかったんですよね。

H松
H松

そうなのです。頑張がんばって色々いろいろと調しらべたのですが。スクリーンリーダーが漢字かんじを間違まちがった読よみ方かたで読よんでしまうことを何なんとかしようという取とり組くみはあっても、ふりがなとの共存きょうぞんを何なんとかしなければ!という取とり組くみが十分じゅうぶんにはないということが分わかったんです。

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

それで、結構けっこう苦労くろうして、スクリーンリーダーモードという解決策かいけつさくを生うみ出だしたんですよね。

私わたしたちがどのように悩なやみ、どのように考かんがえ、どのようなコンセプトでスクリーンリーダーモードという工夫くふうを作つくり上あげていったかについては下記かきのまなキキ記事きじをご覧らんください。

スクリーンリーダー特集とくしゅう・社会科しゃかいか合同ごうどう企画きかく「みんなが読よみやすいサイトってなんだ?」その1

スクリーンリーダー特集とくしゅう・社会科しゃかいか合同ごうどう企画きかく「みんなが読よみやすいサイトってなんだ?」その2

H松
H松

なんだか、懐なつかしいですね。

N川さん
N川さん

当時とうじの私わたしたちは、目めの前まえの課題かだいに1つ1つぶつかっていって、その都度つど「どうしよー」と、無我夢中むがむちゅうで対処たいしょしてたんですよね。

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

無事ぶじにスクリーンリーダーモードが完成かんせいして、ちょっとホッとしたところで、「もしかしたら、制作過程せいさくかていを言語化げんごかしておいた方ほうがいいのかも…。」という話はなしになったんですよね。それで、2020年度ねんど第だい1回かいIESアイイーエス研修けんしゅう講演会こうえんかい「スクリーンリーダーとWEBアクセシビリティ」の開催かいさいに至いたったという。

H松
H松

いやはや。それも懐なつかしいですね。この講演会こうえんかいで頂いたいた意見いけんが1つのきっかけになって、「スクリーンリーダーモードを公開こうかいしよう!」という話はなしになったんですもんね。

自分のサイトでも、ふりがなとスクリーンリーダーの読よみ上あげを両立りょうりつさせたいという声こえ。

2020年ねん7月がつ6日か開催かいさい「スクリーンリーダーとWEBアクセシビリティ」の講演会こうえんかいの終了後しゅうりょうご、参加者さんかしゃの大学生だいがくせいからこんなコメントを頂いただきました。

参加者Aさん
参加者Aさん

ふりがなとスクリーンリーダーの両立りょうりつは大変たいへん興味深きょうみぶかいなと思おもいました。しかし基準きじゅんを満みたしているサイトはとても少すくないのではないかと思おもいました。晴眼者せいがんしゃにとって見みやすいと思おもわれるサイトが、全すべての人ひとにとってわかりやすいものなのか、今一度いまいちど考かんがえなおすべきだと思おもいました。
 私わたしは既存きぞんのブログサイトを利用りようしてブログを投稿とうこうしたり、ホームページ作成さくせいサイトのテンプレートを使用しようしてページの作成さくせいを行おこなうことがあります。ふりがなとスクリーンリーダーが両立りょうりつするようなインクルーシブなサイトを作成さくせいするためには、htmlを使用しようして自分じぶんで作成さくせいする必要ひつようがあるのでしょうか。既存きぞんのサイトを利用りようして工夫くふうできることはありますか。

コメントを頂いただいたときの、私わたしたち(H松・えすとれ先輩・N川さん)の会話かいわ

H松
H松

自分じぶんでサイトを作つくっている方かたから、こんなコメントを頂いただきましたー。嬉うれしいですねえ。

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

でも、講演会こうえんかいで紹介しょうかいした内容ないようをヒントに、スクリーンリーダーモードを自力じりきで作つくるのは、プログラミングの知識ちしきがないとちょっと厳きびしいかも…。

N川さん
N川さん

スクリーンリーダーモードを導入どうにゅうすることによって、ふりがなとスクリーンリーダーの読よみ上あげの共存きょうぞんが可能かのうになるんですよね?ふりがながあっても、スクリーンリーダーを使つかって読よみ上あげることができるサイトがもっと増ふえればいいなと心こころから思おもうのですが…。

H松
H松

スクリーンリーダーモードが当あたり前まえになったら、Webサイトの文章ぶんしょうを今いままでのように苦労くろうして読よまなくてよくなるもんね。どのサイトにいっても、スクリーンリーダーモードがあって、ボタンを押おすだけで、スクリーンリーダーの読よみ上あげに適てきしたページに切きり替かわってくれれば。

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

だったら、誰だれでもスクリーンリーダーモードを作つくれるように、作つくり方かたを公開こうかいしてしまいましょうよ!まなキキからお借かりしました、って

H松
H松

おそらく日本初にほんはつの工夫くふうだから、やろうと思おもえば、特許とっきょをとれてしまうかもしれないけれど(笑)わらい。でもそれは、まなキキの想おもいに反はんする行為こういだもんね。

N川さん
N川さん

あ…。H松さん、ちょっとだけお金かねに目めがくらみかけましたね?

H松
H松

(全まったく考かんがえなかったかと言いえば、否定ひていはしがたい……)

いやいや、H松はまなキキの社会科しゃかいか担当たんとうですからね!スクリーンリーダーモードが情報格差しょうじょうかくさを減へらす一助いちじょとなるなら、無料むりょうでドンドン公開こうかいしますよ!

と、いうことで。ふりがながあってもスクリーンリーダーの読よみ上あげに対応たいおうできるサイトが増ふえてほしいという願ねがいから、作つくり方かたを無料むりょう公開こうかいすることにしました!

スクリーンリーダーモードを設置せっちすることに関かんして…。まなキキからのお願ねがい

スクリーンリーダーモードの制作方法は、無料で公開・提供いたします。

まなキキの想いにご賛同頂けましたら、是非ご自身のWebサイトにスクリーンリーダーモードを設置下さい。

スクリーンリーダーモードの制作方法のシェアも、歓迎いたします!

設置頂く際には、Webサイトのどこかに「まなキキプロジェクト」(津田塾大学インクルーシブ教育支援室Learning Crisis研究会提供)と出典の明記をお願い致します。

*上記表記は、スクリーンリーダーモードを制作した私たちの励みになります!

*なお、スクリーンリーダーモードの制作方法は、2020年10月22日・23日開催の「第108回(令和2年度第3回)福祉情報工学研究会」において学ナビメンバーが報告を行っております。

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

小ちいさく書かいてしまいましたが。実じつは、スクリーンリーダーモードの制作過程せいさくかてい・方法ほうほうを、学会がっかいでも発表はっぴょうしたんですよね。

H松
H松

4月がつにまなキキを始はじめたときには、まさか学会発表がっかいはっぴょうを行おこなうまでになるとは一切いっさい思おもっておりませんでした。でも、学会がっかいでは「ルビ(ふりがな)の存在そんざいが、ここまで読よみ上あげに悪影響あくえいきょうを与あたえていたとは考かんがえていなかった。今後こんごどのようにWebアクセシビリティ改善かいぜんの呼よびかけを行おこなっていけるかを考かんがえなければ!」という有あり難がたいご意見いけんを頂いただくことができたんですよね。少すこしでも、アクセシビリティの向上こうじょうの助たすけになれば……と思おもって学会発表がっかいはっぴょうを行おこなったこともあって、本当ほんとうに嬉うれしく、今後こんごの議論ぎろんの発展はってんにワクワクする気持きもちになりました。

N川さん
N川さん

今後こんご、ルビ(ふりがな)とスクリーンリーダーの共存きょうぞんを考かんがえる議論ぎろんが学術がくじゅつの場ばにおいても、もっともっと盛もり上あがったらいいなと思おもいますよね。

H松
H松

おっと!ついつい、前置まえおきが長ながくなってしまいましたね。
それでは、いよいよ。スクリーンリーダーモードの作つくり方かたをご説明せつめいします!

N川さん
N川さん

まずは、ふりがなボタンを作つくるところからですね!

H松
H松

そうですね。ふりがなのオンオフをボタン1つでできる機能きのうをつけると、読よむ人ひとの事情じじょうに合あわせて切きり替かえてもらえますから。ふりがなボタンの設置せっちは、誰だれしもが読よみやすいサイトにするための第一歩だいいっぽとも、言いえるかもしれませんね。

ふりがな切きり替かえボタンをつくる

ボタンをつくる

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

ふりがなボタンを配置はいちしたい場所ばしょに、以下いかのHTMLコードを入力にゅうりょくしてください。WordPressでは「PRyC WP」というプラグインを導入どうにゅうすると、投稿記事とうこうきじの本文上ほんぶんうえに自動じどうで表示ひょうじしてくれるので便利べんりです。

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

ボタンの動うごきを作つくる

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

ボタンを押おした時ときの処理しょりはJavascriptで記述きじゅつします。
WordPressを利用りようしている方かたは、外観がいかん → テーマエディター → javascript.jsに追記ついきしてください。

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

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

ふりがなの見みえ方かたを設定せっていする

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

ふりがな表示ひょうじがオンのとき、オフのとき、それぞれどう見みせるかはCSSで記述きじゅつします。
WordPressを利用りようしている方かたは、外観がいかん → テーマエディター → style.cssに追記ついきしてください。

ふりがな切り替えボタン: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;
}
H松
H松

これで無事ぶじ、ふりがなのオン・オフができるようになりましたね!

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

ということで、ここからは、いよいよスクリーンリーダーモードを作成さくせいしていきますよ!

スクリーンリーダーモードをつくる

ボタンをつくる

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

ふりがな切きり替かえと同おなじく、まずはボタンの設置せっちからですね。「記事きじ本文ほんぶんの上うえ」だとボタンに辿たどり着つくまでに時間じかんがかかってしまうので、「コンテンツ上部じょうぶ」に配置はいちしてみましょう。
WordPressメニューの外観がいかん → ウィジェット → コンテンツ上部じょうぶです。ここにカスタムHTMLを追加ついかして、以下いかを入力にゅうりょくします。

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

ボタンの内容ないようが長ながいですね。それに、5レベルの見出みだし要素ようそになっています。

N川さん
N川さん

見出みだしになっていると、見出みだしジャンプを使つかったときでも聞きき落おとさずに済すむんです。内容ないようも「このボタンを押おしたら何なにが起おこるのか?」がわかるように説明せつめいしてもらっています。

ボタンの動うごきを作つくる

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

ボタンを押おした時ときの処理しょりはJavascriptで記述きじゅつします。
WordPressを利用りようしている方かたは、外観がいかん → テーマエディター → javascript.jsに追記ついきしてください。

スクリーンリーダーモードボタン: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();
    }
});

ボタンをかくす

H松
H松

いやー。これで無事ぶじに、「スクリーンリーダーモード」というボタンができましたね。よかったよかった。

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

ちょっと待まったー! こんなに長ながいボタン、見みえっぱなしでいいんですか、いやよくない!

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

画面がめんの幅はばを取とるというのもそうなんですけれどもね。H松さん、「スクリーンリーダーモード」が何なにをどう変かえているかもう一度いちど思おもい出だしてください。

H松
H松

スクリーンリーダーとルビの競合きょうごうを防ふせぐために……
あっ、ルビタグを消けしてますね。ふりがな切きり替かえボタンもなくなっちゃう。

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

うっかり晴眼者せいがんしゃがこのボタンを押おすと、却かえって目めでは読よみにくくなるんです。ページの再さい読よみ込こみで元もとに戻もどるとはいえ二度手間にどてまですよね。だから、スクリーンリーダーを使つかった時ときだけこのボタンを見みつけられるように隠かくしてしまいましょう。

N川さん
N川さん

そんな便利べんりなことができるんでしょうか?

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

はい、これについては先行事例せんこうじれいがあったのでそのまま使つかわせていただきました。「見みせないけれども読よみ上あげる」通称つうしょうvisually-hiddenというもので、CSSに追記ついきして使つかいます。詳細しょうさいはリンク先さきを参照さんしょうしてください。これで、ふりがな切きり替かえボタンとスクリーンリーダーモードの作成さくせいは完了かんりょうです。

ふりがなボタンとスクリーンリーダーモードの作成さくせい方法ほうほうは以上いじょうです!次回じかい、スクリーンリーダーモードの作つくり方かたその(2)に続つづく!

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