freeeの開発情報ポータルサイト

freee社内のアクセシビリティのいい話 2020年8月号

どうも、20新卒の全盲のコード書き、野澤です。社内では cat と呼ばれています。猫好きなのでこの名前です。もう猫になりたいぐらい猫好きです。

私が正社員として入社してから4か月が経過しました。そのなかで、freee社内でアクセシビリティのいい話がたくさんありましたので、そのうちのいくつかを共有したいと思います。「アクセシビリティ」という言葉を聞いたことがない方や、アクセシビリティについてもっと知りたいという方は、以下のエントリーもぜひご覧ください。

jobs.freee.co.jp developers.freee.co.jp developers.freee.co.jp

全盲なのにコードは書けるのか?

はい。このような疑問を抱く方も、当然いらっしゃるのではないでしょうか? 全盲ということは、まったく目が見えないということです。画面が見えないわけなので、コードも見えないし、terminalの出力も見えません。では、どうやっているのかというと…。

  • PCに「スクリーンリーダー」をインストールして、コードやターミナル出力、ウェブサイトの内容、入力する文字など、あらゆるものを読み上げさせて聞く
  • 「点字ディスプレイ」という機械をPCに接続して、集中して読みたい部分を点字で読む

なんということでしょう!こういう支援技術を使うと、画面をまったく見なくてもRailsのAPIサーバを実装できたり、CSS以外のReactコンポーネントをがんがん作れたり、社内共通のReactコンポーネントライブラリ( Vibes ) でいい感じのUIをさくっと書けたり、AWSでインフラを作ってコンテナデプロイができたり、よくわからないエラーが出て時間を溶かすことができたりするのです。

新卒4か月で取り組んだこと

以下に、私が4か月で取り組んできた業務内容を挙げます。

4月から5月は、新卒研修で新規ウェブアプリの開発に携わり、API設計、フロントエンドロジック、インフラ構築とデプロイを担当しました。 6月からは、freeeサービスにおける認証認可基盤を開発/保守するチームに配属となりました。最初の1か月は、freee アカウント管理の機能改善や保守作業を行っていました。7月からは、現在開発中の新しいマイクロサービスのgRPC実装に力を入れており、書いたことも読んだこともなかったgoとドラマティックな戦いを繰り広げています。freeeにおけるマイクロサービス化の歩みについて興味がある方は、以下の記事も合わせてご参照ください。

developers.freee.co.jp

じつは困ったこともあった

支援技術のおかげでfreeeでの仕事ができている私ですが、画面を見ることができないというのは事実であり、そのハンディキャップが完全になくなったわけではありません。

業務で利用するサービスのアクセシビリティが確保されておらず、スクリーンリーダーへの対応が不十分だったこともありました。事前知識の獲得や要件定義の把握に利用する資料が視覚的レイアウトや色に依存しており、それだけでは理解できなかったということもありました。

工夫しながらどんどん改善

何かの目的を達成しようとするとき、多くの場合、そのための方法は1つではありません。いくつかある方法のうち、目が見えなくてもできるものを探し、必要な環境を1つずつ整えていけばよいのです。このとき、一緒に仕事をするメンバーとの協力は欠かせないものです。場合によっては、今までのやり方から、多かれ少なかれ変化が発生することも十分にあり得るからです。幸いなことに、配属先のメンバーは変化に対して柔軟で、私が最大のパフォーマンスを発揮できるよう、いろいろなことを一緒に考えてくれています。そのうちのいくつかをご紹介したくて、この記事を書いています。

研修でどうしても難しかったところを臨機応変に対応してもらえた

研修資料に画像がたくさんあったときには、専用のチャット部屋を作って質問できるようにしてもらえました。 研修に利用する予定のサイトを開いたらスクリーンリーダーが暴走してどうしようもなかったときは、そのサイトを使わずにローカルでやればいいということにしてもらえました。 研修のスライドには、インフラ構成図なども多くあったのですが、かなりの部分に代替えテキストを付けてもらえていたので、理解にこまることはありませんでした。

新卒の同期たちが、結構自然にアクセシビリティと発言する

新卒研修でばんばんコーディングをしているときも、アクセシビリティ関係を結構気にしてもらえていたし、アクセシビリティを直すPRを投げるとすぐ見てくれたし、とてもよかったです。そのおかげで、うちのアプリはVibesを使わなかったけどかなりアクセシブルになりました!

配属先で運用方針を工夫してもらえた

私が来る前は、JamboardというGoogleのホワイトボードみたいなサービスを利用していたり、JIRAのスプリントボードにフラグを付けて、それを共有しながらやったりしていたようです。けれども、Jamboardは文字情報だけでなく配置も重要になり、現状、その読み上げには対応していないので私は利用できません。 JIRAは一応使えることには使えるのですが、いくつか並んでいるタスクの中からフラグが付いているものを探したりする作業は、画面全体が見えていないとどうしても時間がかかり、追いつくことが困難です。

驚くべきことに、これについて、私が実際に参加する前から検討していただけていました。しかも、お互いの利便性を損なわず、変更が容易で、柔軟な形で。「Jamboardなんですが、やめましょう!!!」という一声でJamboardが消え去ったときには、正直ビビりました。

JIRAについては、議題に上がるチケットの番号を言ってもらうようにするだけで、1個ずつ読み上げさせて探す手間が0になり、問題なく話についていけるようになりました。これこそ、専門的に言うところの「障害の社会モデル」ですね。

Vibes プロトコルで話をするとフロントが普通にできちゃう

さすがに自分で見た目を確認して…とはいきませんが、どちらにしろ社内のコードは必ずレビューとセットなので、そこは問題になりません。Vibesという社内で開発しているUIコンポーネント集があるので、最初にフロントを実装するときに、「ここらへんにVibesのNoteコンポーネントを置いて、ボタンはこのpropsを渡せば今回やりたいスタイルにできるから、そんな感じでやっといてー」という感じでちょっと打ち合わせをすれば、それだけで問題ないのです。中身の表示を変える、条件分岐させるといったことは、Reactをどうやって書くかというだけの話なので、そこは私が考えればいいのです。

ちなみに、Vibesを使わなかった新卒研修では、私が強い気持ちでコンポーネントを書いて、あとはスタイルなどを誰かがあててくれて、気が付いたら組み込まれている…という感じにしていました。それでもなんとかなったようですが、私が画面のデザインデータを見られなくて妄想力を溢れさせて実装したところがちょっと違ったりしたみたいです!やっぱりVibesは社内プロダクトの開発には欠かせない存在です!

デプロイタスクで、E2Eが成功しているのかどうかわからなかったのを直してもらえた

ステージングデプロイのあと、E2Eテストが走るようになっているのですが、これが成功したかどうかは、色の違いで表示されていました。これは当然私にはわからないし、それがE2Eの成功/失敗を表している通知であることさえ、教えてもらうまでまったく知りませんでした。

この問題に定期デプロイしているときに気づいたのですが、3日後にはQAチームの方が直してくださり、 success か failure と表示されるようになりました。これで、なんの問題もないですね!

社内には点字があるし、点字付きで郵便物が送られてくる

先日、社内全体で行われる大規模イベントがありました。そこで使用する道具がいくつかあり、郵送されてくることになっていました。受け取ってみると、その箱には点字が付いていて、中身にまでしっかり点字の説明が入っていました。実は、中に複数の箱が入っていて、順番に開けないといけなかったのですが、点字の説明のおかげで、バッチリ正しい順番で開けられました!

「7月3日開封案内まで開封厳禁」と書かれた大きな箱と、中に入っていた空ける時間の指定された箱
社内イベントで使われた「フリスピBOX」と、中身の箱
(詳しくは社員500名 全員オンライン!8時間の大規模イベントを気合とハックでやりきった話を参照)

freeeは、我々点字ユーザーのために、点字をシールに印字できる機械を購入して使ってくれています。今は出社することがないのですが、オフィスのドリンクサーバーには、ボタンを押したらなんの飲み物が出てくるのか、すべて点字で書いてあるのです。

ドリンクサーバーの写真。上からジンジャエール、ペプシネックス、オレンジジュースのボタンがあり、左側に点字ラベルがある
オフィスのドリンクサーバー。よく見るとボタンの左側に点字ラベルが貼られている

なんか困ったらとりあえずSlackのtimesチャンネルでつぶやくと優しい人が教えてくれる

業務のことでも、業務外のことでも、です! 皆さんがtimesを見て反応してくれるおかげで、私は生きることができます。これは本気です。

4か月でこんなにあった

今や、普段の業務において、視力障害が妨げになることはほぼありません。それどころか、日常生活においてちょっと困ったとき、会社の仲間に助けてもらえることすらあります。これは、多くのfreeersの協力によって実現されていることで、毎日感謝しています。私も、freeersやfreeeカスタマーにマジ価値を与え続けられるよう、日々精進していきたいと思います!