行政と市民6千万人以上に使ってもらえるサービスを支えるツール

私の勤務先では、250以上の地方自治体、合計6千万人以上の住民に対してSaaSサービスを提供しています。

主にカナダとアメリカに提供しています。どちらの国も多民族国家で、様々な国から移住してきた人達がいます。英語が話せない人もたくさんいます。

カナダに住んでいて素晴らしいと思うのは、当然のようにバリアフリーであるということ。例えばトイレ。商業施設や公共施設では車椅子利用者でも問題なく使えるトイレの設置が義務付けられています。

私たちは数々の工夫をし、どんな方々にでも使って頂けるサービスを目指しています。 今回はデベロッパーとしてどんな取り組みをしているのか、また、どんなツールを使っているのか紹介します。

・クロスブラウザーサポート
・アクセシビリティ
・多言語サポート

クロスブラウザーサポート

Google Analyticsの統計をみてみると、色々なブラウザーからのアクセスがあります。行政にサービスを提供しているからか、Internet Exploreからのアクセスも多々あります。日本ではないにも関わらず、です。 冗談に聞こえますが、北米の行政も日本のそれと同じように、"セキュリティの観点" から、IE以外のブラウザーを利用するためには申請が必要な自治体もいくつかあります。

弊社では全員Macbookを使っています。MacbookにIEをインストールすることはできません。このため、Virtualboxというツールをインストールし仮想環境内でIEの表示テストを行ったりすることがあります。

また、最近までCIの一部としてSauce Labs上で自動テストを走らせていました。Sauce LabsはSelenium上でE2Eテストをするクラウドサービスです。テストごとにブラウザーやウィンドウサイズが指定できます。IEや古いAndroidブラウザーを指定してテストをすることができます。

VirtualBox
Free Virtual Machines from IE8 to MS Edge
Sauce Labs

アクセシビリティ

一般向けに提供しているサービス内では、目の不自由な方々のために、全てのコンテンツがスクリーンリーダーで読めるようになっています。 アクセシビリティはa11yとも呼ばれ、W3Cで標準化されています。W3Cに標準化された規格を満たしているサービスはあまり多くない中、私たちはWCAG 2.0という規格を満たすことに成功しました。

開発時に利用したのはMacbookのスクリーンリーダーです。System Preference > Accessibility > VoiceOver でスクリーンリーダーを使うことができるようになります。

弊社のサービスの一部に、リマインダーという機能があります。利用者がリマインダーに登録しておくと、指定された日時にメールやSMSなどで利用者に通知を送る機能です。 通知する選択肢はメールやSMSの他にも、目の不自由な方でも利用して頂けるボイスコールというものがあります。これは、ボイスコールを登録した利用者に対して指定された日時に自動で電話をかけ、機械が通知内容を読み上げてくれます。この機能にはtwilioという会社の提供するVoice APIというサービスを利用しています。

VoiceOver
twilio

多言語サポート

バンクーバーの街を歩いていると本当に色々な言語を耳にします。英語の他にも中国語、日本語、韓国語、ヒンディー語やスペイン語など。フランス語もカナダの公用語ですが、バンクーバーで聞く機会はあまりありません。

どんな言語を使っていても、その自治体の住民であることには変わりはないので、私たちは英語だけでなく多言語をサポートしています。多言語をサポートするためのツールはおおよそ以下の通り動作します。

1. ソースコードに直に原文となる英語を記述。
2. コンソールにて多言語化スクリプトを実行。スクリプトはソースコードをスキャンして翻訳が必要な原文を抽出する。
3. スクリプトは原文に対してkeyを生成し、それぞれが対応する翻訳ファイルを自動生成する。
4. 同じスクリプトがそれぞれの文に対し、翻訳をするか、翻訳をスキップするか確認を行う。
5. デベロッパーはコンソールにてスクリプトからの質問に対してYesかNo(skip)を選択する。
6. Yesが選択された文は、Google Translation APIまたはGengoという手動翻訳サービスへ翻訳リクエストを送信する。
7. スクリプトは原文を翻訳keyで置換する。
8. 翻訳サービスからの翻訳結果を受け取り、翻訳ファイルに対応する、それぞれの言語のファイルを作成、翻訳結果を更新する。

アプリケーション側は、実際にブラウザーにレンダリングされる時、コードは指定された言語の翻訳ファイルを読み込み、その言語でコンテンツを表示しています。

Google Cloud Translation API
Gengo

おわりに

どれも泥臭い地味な取り組みです。9割以上の利用者は一瞬でも気づくことはないでしょう。効率だけで考えたら後回しになることは確実です。しかし、シビックテックに取り組む私達にとって、これらを無視し続けることはできません。目が見えない方も、英語が話せない方も、同じ地域に住んでいる住民です。本来ならみんなが同じようにサービスを受けられるべきですよね。

本当の"おわりに"

サービスの一部に、ゴミ収集日のリマインダーがあり、ゴミ収集日を事前通知しています。

わたしたちの顧客である自治体を通して、利用者である住民の方からフィードバックを頂くことがあります。先日頂いたメッセージは目の見えない高齢の男性からでした。曰く、「ボイスコール(リマインダー)を使い始めてから一回もゴミの日を逃したことはない、とても素晴らしい気分だ」

いくら泥臭い仕事でも、それを喜んでくれる人がいるのなら、デベロッパーとしてもシビックテックに身を置く者としても、こんなに嬉しいことはありません。

お読み頂きありがとうございました。

Civic Tech Advent Calendar 2018 Day 6
Frog Advent Calendar 2018 Day 5


このノートが参加している募集

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

お読みいただきありがとうございます!
8

Wataru Oguchi

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。