チャットアプリなどでの「改行」問題を考える
LINEやSlack、Teamsなどのチャットアプリを使う機会が増えた。 これらのアプリには、送信者がメッセージ内に改行を入れる機能がある。 今まで、これは段落の切れ目などを表したいときにしか使わないものだと思っていたのだが、「勝手に変なところで改行されないように細切れに改行を入れている」という話を聞いて以降、その当たりの考えが揺らいでいる。 この問題、結局どうするのが正解なんだろうか?というのが、この記事のテーマだ。 なお、この記事では「チャットアプリ」をテーマにしているが、コンピューターで文章を書くという局面においては、いろいろなところで遭遇する問題ではないかと思う。 ということで、マニアックなことに興味のある方は続きをどうぞ。
論理行と物理行
コンピューターで文書を扱うとき、何をもって「1行」と見なすのかという問題がある。 まずは、それを整理しておこう。
複数行にわたる長い文書を書くとき、「エンターキー」や「改行キー」と呼ばれるキーを押して次の行に移動することがよくある。 このキーを押すと、目には見えない「改行」という文字が挿入される。 この文字は、「カーソルを次の行の頭に移動する」という役割を担っている。 だから、改行の前後で行が変わったように見えるのだ。 この、「改行」という記号で区切られた行のことを、論理行と呼ぶ。
一方、入力した文書を表示するディスプレイのサイズには限界がある。 論理行1行に100文字が書かれていても、50文字しか表示できないディスプレイには入りきらない。 このようなケースでどう表示するのかはさまざまだが、多くの場合、適当な位置で折り返され、複数行に分かれて表示される。 つまり、論理行の切れ目ではないにもかかわらず、表示上は改行されているという状況になるのだ。 このようにしてできた見かけ上の行のことを、物理行と呼ぶ。
論理行と物理行という表現は直感的にはわかりづらいためか、前者を「段落」、後者を「行」と表現しているのを聞いたことがある。 いずれにしても、改行記号を入れたことによって論理的にできた「行」と、ディスプレイに表示したときに物理的な制約によってできた「行」があることをご理解いただきたい。
チャットアプリにおける「行」の扱い
さて、冒頭の、チャットアプリの話である。
多くのチャットアプリには、改行を入れる機能がある。 つまり、送信者が自分の意思で「論理行の切れ目」を作ることができるのだ。
では、論理行1行が受信者の環境で1行に表示できなければどうなるのか。 前述の説明の通り、適当なところで改行され、複数行で表示される…と、私は認識している。 ただし、私は実際の表示を確認できないため、あまり自信がない。 「それは違うぞ」と思われた方は、ぜひお知らせいただけると嬉しい。 この後の議論が破綻してしまうかもしれないからだ。
「改行」は誰の仕事なのか?
では、この記事の本題。 今のところ明確な結論が出ていないので、2種類の考え方を書いておく。 これらが一般的な考え方かどうかはわからないが、とりあえず私の思いついた考え方である。
改行はアプリ(表示)の仕事
改行記号は、文の切れ目、意味の切れ目など、「論理的にそこに改行があることに意味がある」ときにのみ使う。 そして、1行の長さなど、見かけ上の制約に関することは基本的に考慮しない。 なぜなら、表示環境はさまざまで、すべてに対応することは不可能だからだ。 物理的制約に関する処理は表示側で行ってくれるので、完全にそちらに任せてしまおうということだ。
これは、「リフロー型の電子書籍」に近い考え方である。
改行は人間(送信者)とアプリ(表示)の共同作業
そうは言っても、改行を完全に機械に任せてしまうと、単語の途中など、一続きに表示してほしい箇所で改行される可能性がある。 そこで、「多くの環境で1行に入りそうな長さ」ごとに改行記号を入れておいて、そういった問題を回避しようという考え方だ。
よく「メールのマナー」として、「1行の長さに注意」というのが紹介される。 この考え方は、それに近いかもしれない。
最後に、私の正直な意見
今のところ、私は前者の意見に近い考え方だ。 つまり、「文書を書くときに表示のことを考える必要はない」と思っている。
たとえば、「相手はスマートフォンを使っているかもしれないから」と、1行を限りなく短くしたとしよう。 ところが、相手は大型のモニターを使って読んでいるかもしれない。 そうなると、「本来1行で表示できるのに、送信者が改行しているせいでスペースを有効活用できない」という問題に遭遇するだろう。
また、表示のことを考慮してたくさんの改行が入っていると、本来の意味での(意味の切れ目としての)改行を探すのが難しくなる。
ということで、何かご意見のある方はぜひお知らせいただきたい。