はじめに
認知負荷の小さい記事を作りたかった。
なぜやろうと思ったか
理由は2つある。
ひとつは、自分の考えをできるだけ分かりやすい形でアウトプットしたかったこと。分かりやすさといっても、文章の構成、言い回し、読んでいる最中にかかる負荷と、いくつも層がある。内容を考えるのと同時にそこまで面倒を見るのは、正直しんどい。
もうひとつは、AI にコードレビューを頼んだときの、あのレビュー文の読みづらさの正体を知りたかったこと。指摘は当たっている。なのに読み進められない。何が起きているのか分からないまま、ずっと引っかかっていた。
この2つは別々の話に見えて、たぶん同じところでつながっている。それを確かめるために、記事そのものを LLM と一緒に書いてみることにした。
認知負荷という観点
認知負荷という言葉は SNS で偶にみかけるようになったが、自分が知った経緯は心理学だった気がする。そのときは確かワーキングメモリーの文脈で出てきたと記憶している。一度に頭に載せておける量には限りがあって、それを超えると処理が落ちる、というあの話だ。
その後 WEB のフロントエンドで開発し始めて、最近 WCAG を学んでいる。読んでいて意外だったのは、文の組み立て方の観点による文章の読みやすさについては、ほとんど触れられていないように見えたことだった。コントラスト比、代替テキスト、フォーカス、見出しの構造。そのあたりは細かく決まっている。ところが「この文は一度に何を要求しているか」という話が出てこない。
自分自身もそこまで重要視していなかった。変わったのは、最近ディスレクシアの方と出会って話をしたときだ。そこで初めて、文章を読むという行為が全員にとって同じコストではないことを、実感として理解した。それまでは知識として知っていただけだった。
なぜ見過ごされてきたか
そもそも WCAG 自身が、ティム・バーナーズ=リーの言葉(新しいタブで開く)をページの上部に置いている。
ウェブの力はその普遍性にある。障害の有無にかかわらず、誰もがアクセスできることは不可欠な要素である。
それだけ重要視しているはずなのに、ディスレクシアを含む認知の問題に関する障害に悩まされている人が考慮されていないことに違和感を覚えた。
ただ、調べてみると事情は少し違っていた。読解に関わる達成基準は、ちゃんと存在する。3.1.3 一般的でない用語、3.1.4 略語、3.1.5 読解レベル、3.1.6 発音。問題は、この4つが揃って適合レベル AAA に置かれていることだ。しかも WCAG は、AAA をサイト全体の方針として求めることは推奨しないとまで書いている。すべてを満たせないコンテンツがあるから、という理由で。実務が目指すのは A と AA なので、読みの負担は最初から目標の外にある。
書き方そのものの指針も、ないわけではなかった。W3C には Making Content Usable for People with Cognitive and Learning Disabilities(新しいタブで開く) という文書がある。認知や学習の障害のある人にとって何が壁になるかを、パターンとして並べたものだ。そのうち 4.4 の Objective 3 が、文の書き方をまとめている。
| 節 | 原文タイトル | 訳タイトル | 要点(訳) | 関連ユーザーストーリー |
|---|---|---|---|---|
| 4.4.1 | Use Clear Words | 明確な語を使う | 一般的で平易な語を使い、造語・略語・専門用語は避けるか説明する | Clear Language |
| 4.4.2 | Use a Simple Tense and Voice | 単純な時制と態を使う | 英語なら現在形・能動態を基本にし、利用者に直接語りかける | Clear Language |
| 4.4.3 | Avoid Double Negatives or Nested Clauses | 二重否定・入れ子の節を避ける | 文構造を単純にする。二重否定と節の入れ子は使わない | Clear Language |
| 4.4.4 | Use Literal Language | 文字どおりの表現を使う | 比喩・冗談は避けるか説明を添える。具体的な語を使う | Clear Language |
| 4.4.5 | Keep Text Succinct | テキストを簡潔に保つ | 段落・文を短くし、1つの話題/1つの論点にとどめる。リストを使う | Clear Language |
| 4.4.6 | Use Clear, Unambiguous Formatting and Punctuation | 明確で曖昧さのない書式と句読点を使う | 読み上げを含め誤読されない数字・記号・日付の書き方をする | Clear Language |
| 4.4.7 | Include Symbols and Letters Necessary to Decipher the Words | 語を判読するために必要な記号・文字を含める | ヘブライ語・アラビア語などで発音の確定に必要な母音・発音記号を付す | Clear Language |
| 4.4.8 | Provide Summary of Long Documents and Media | 長い文書・メディアに要約を付ける | 短く平易な要約を付け、必要な内容か判断できるようにする | Clear Language |
| 4.4.9 | Separate Each Instruction | 手順を1つずつ分ける | 手順を分割し明示する。番号付きリストや if/then 表を使う | Support |
| 4.4.10 | Use White Spacing | 余白を使う | 要素やテキストの周囲に余白を取り、区切りを明確にする | Visual Presentation |
| 4.4.11 | Ensure Foreground Content is not Obscured by Background | 前景コンテンツが背景で埋もれないようにする | 文字を柄の上に重ねない。音声の背景ノイズを除去できるようにする | Visual Presentation |
| 4.4.12 | Explain Implied Content | 暗示的な内容を説明する | 表情・仕草・皮肉・比喩などの含意をテキスト等で補う | Visual Presentation |
| 4.4.13 | Provide Alternatives for Numerical Concepts | 数的概念の代替手段を提供する | 数値だけに頼らず、言葉による表現(寒い/暖かい等)を併記する | Math Concepts |
※ 訳タイトルと要点は自分で付けたもの。原文は英語のみ。
見てのとおり、AAA の4基準よりずっと踏み込んでいる。入れ子の節を避けろ、1段落に載せる論点は1つにしろ、と具体的に書いてある。それでいてこの文書は W3C Working Group Note で、冒頭に「ここに書かれた内容に従うことは WCAG への適合の条件ではない」と明記されている。
つまり、指針が存在しないのではない。必須の側に来ていないだけだった。
なぜそうなるかは、達成基準の作り方を見ると納得がいく。WCAG の達成基準は、機械か人が検証できる文として書かれている。コントラスト比は数字で出る。代替テキストの有無は見れば分かる。一方「この文は重い」は、読み手によって割れる。ワーキングメモリーへの負荷は実験室でなら測れても、1ページの合否には落ちてこない。検証できるものが A と AA に集まって、割れるものが AAA と参考文書に残った。見過ごされたというより、必須にする形に落ちなかった、という話に近い。
で、LLM に何を渡したか
やったことは単純で、記事を書くためのテンプレートを1枚作って、それを渡している。
1文は80字まで。1文に情報は1つ。段落に載せる論点も1つ。分野の呼び方や主語は最初に固定して、途中で言い換えない。数字は1章に3つまでで、桁の多い実数は概数にする。長い記事の頭には要約を置く。
書き終わってから 4.4 の表と突き合わせて、少し笑ってしまった。4.4.5、4.4.3、4.4.1、4.4.6、4.4.8 に、ほぼそのまま重なっている。COGA を読んでからテンプレートを作ったわけではない。読みづらさを自分なりに1つずつ潰していったら、同じ場所に着いていた。逆に言えば、あの13パターンは特別な知見ではなく、誰でもたどり着ける当たり前を、必須にできなかったから参考文書に置いてある、というだけなのかもしれない。
そして最初のもうひとつの疑問。AI のレビュー文がなぜ読みづらいのか。あれは、既定のままだと1文に条件と理由と結論を積み、節を入れ子にして、1段落に複数の論点を乗せてくる。4.4.3 と 4.4.5 に正面から反している。モデルが下手なのではなく、何も言わなければ既定の書き方に戻るというだけの話だった。実際、チェックリストを渡した途端に出力は変わる。
それでも読みづらかった
ここまでなら、チェックリストを渡せば済む話で終わる。実際には終わらなかった。
テンプレートを通して書いた記事が、すでに2本ある。ユニバーサルデザイン7原則の非対称と、日本のウェブアクセシビリティに足りない免除の審査。どちらも項目としては満たしている。1文は80字を超えていない。1文に情報は1つしか載っていない。節も入れ子になっていない。4.4 の表と突き合わせても、当たっている項目のほうが多い。
それでも、時間を置いて読み返すと読みづらかった。矯正がいちばん効いている章ほど、読み進めるのに力がいる。
原因は読み返しながら見当がついた。文を短く割ると、文と文をつないでいた関係が、文の外に出ていく。「だから」「とはいえ」「これを受けて」が落ちて、その判断が読み手の側に移る。1文あたりに載る量は確かに減っている。代わりに、前の文を保持したまま次の文との関係を組み立てる作業が増える。負荷は消えていない。場所が変わっただけだった。
もうひとつある。全部の文が同じくらいの長さと強さになると、どこが山なのか分からなくなる。強調は、内容だけでなく長短の差でも作られていた。均してしまうと、その差が使えない。読み手は全部を等しく重く受け取ることになる。
つまり、13パターンも自分のテンプレートも、文の中しか見ていない。文と文の間、章と章の間にかかる負荷を見る項目が、どこにもない。WCAG の AAA にもない。COGA の 4.4 にもない。自分で作ったテンプレートにもなかった。
というわけで、この実験は失敗だ。認知負荷の小さい記事は作れなかった。作れたのは、項目を満たした記事だった。
そして皮肉なことに、探していた「適合しているのに、なぜか読みづらい」の実例が、自分の書いた記事になった。項目は全部通っている。それでも読み終わるのに力がいる。適合と読みやすさが別物であることを、これ以上ないくらい手近な形で確認してしまった。
この記事だけはテンプレートを外して書いている。矯正した2本を読み返した結果としてそうした。読みやすくなっているかどうかは、自分では判定できない。少なくとも、同じ失敗の上に3本目を積むことにはならなかったはず。
次に試すとしたら、文の中ではなく文と文の間を見るチェックリストになる。ただし、それをどう検証できる形にするのかという問題に、すぐぶつかるはずだ。W3C が読解の基準を AAA と参考文書に置いた理由と、たぶん同じところに。一周して、同じ壁の前に戻ってきた。