タブ or スペース:アクセシビリティの観点からインデントを考える
開発において、インデントをスペースにするかタブにするかは、永遠のテーマと言えるでしょう。
私は今回、Change indentation from tabs to spaces · Issue #214 · giselles-ai/giselle にてインデントをスペースに変更しようと試みました。
しかし、Default to tabs instead of spaces for an ‘accessible first’ environment · Alexander Sandberg という記事の存在を知り、考えを改めました。
この記事では、アクセシビリティの観点から、なぜタブをデフォルトにするべきかについて解説します。
タブ or スペース:それぞれのメリット
まず、タブとスペースそれぞれのメリットを簡単にまとめます。
タブのメリット
- ファイルサイズ: 1文字でインデントを表せるため、ファイルサイズを小さく保てます。
- 本来の目的: インデントを表すために設計された文字です。
- カスタマイズ性: 利用者ごとにインデント幅をカスタマイズできます。
スペースのメリット
- 環境依存の回避: 空白文字に依存する環境での問題を回避できます。
- 一貫性: 常に同じように表示されるため、見た目の一貫性を保てます。
アクセシビリティの観点:タブが重要な理由
上記のように、スペースにもメリットはありますが、アクセシビリティの観点ではタブが圧倒的に優位です。
視覚障碍者への配慮
Alexander Sandberg氏の記事では、Redditの投稿を引用し、タブの重要性について述べています。 視覚に障碍のある開発者の中には、タブ幅を1に設定して大きなフォントサイズでもインデントが大きくなりすぎるのを避けたり、モニター環境に合わせてタブ幅を8に設定したりする人もいます。 このように、タブを使用することで、各個人の環境に合わせてインデント幅を柔軟にカスタマイズできます。
アクセシブルファーストな環境
「モバイルファースト」という考え方があるように、開発環境においても「アクセシブルファースト」を意識すべきです。 つまり、誰もが同じように開発できる環境を整備することが重要です。 タブを使用することは、そのための重要な要素の一つとなります。
なぜタブをデフォルトにするべきか
記事中にもあるように、
“there’s just no counter-argument that even comes close to outweighing the accessibility needs of valued coworkers”
という言葉が全てを物語っています。
タブを使用することで、個人の環境に合わせて柔軟にインデント幅を調整できるため、より多くの人が快適に開発に参加できます。
関連記事: GitHubのコードのタブインデントの表示を調整する方法
まとめ
インデントをスペースに変更しようとした今回のissueは、アクセシビリティという観点からタブの重要性を再認識する良い機会となりました。
すべての開発者が快適に開発できる環境を目指し、アクセシビリティに配慮した開発を心がけたいと思います。
以上、インデントとアクセシビリティについて考察した、現場からお送りしました。