Melanie Sumner は、デジタル アクセシビリティを専門とするソフトウェア エンジニアです。エンジニアリングへの道のり、ユーザー補助設計、Ember.js、これらの取り組みに資金を提供する重要性について、お話を伺いました。
この投稿では、ユーザー補助機能について学ぶの一環として、コミュニティのエキスパートを取り上げます。
Alexandra Klepper: ありがとうございました。あなたの身元と職業
Melanie Sumner: Melanie Sumner と申します。デジタル アクセシビリティを専門とするソフトウェア エンジニアです。私は 25 年間ウェブのコードを書いています。私の最初のキャリアは、一種のスパイでした。私は米海軍でインテリジェンス アナリストを務めており、コーディングは趣味でした。
スパイになるのは嫌だった。結局、私は死が嫌いではありませんでした。ほとんどの人は、近づかなければならないときにはそうではありません。次に何をしたいか決まっていたので、趣味をキャリアに変えるときが来ました。この 10 年間、特にユーザー補助分野のソフトウェア エンジニアリングに注力してきました。
Alexandra: 「最初はスパイでした」という話はよく聞きますが、気にしないでアクセシビリティの分野に進んだきっかけは何ですか?
Melanie: 当時は、ノースカロライナ大学 [UNC] の Chapel Hill 開発局に勤務していました。ウェブ開発のような開発ではなく、資金調達のような開発を意味します。
直属の上司は視覚に障がいがあり、表示するにはすべてを 400% に拡大しなければなりませんでした。彼は優秀なソフトウェア エンジニアでした。今までで最高のマネージャーだと思います。でも、彼はいつも私の作品を拡大して見るので、私の作品を壊していました。レスポンシブに構築することを考えていなかったら、機能しなかったでしょう。
私のマネージャーの上司は青色の色覚異常でした。UNC ブルーの色をご存じかどうかはわかりませんが、この明るい空色です。白色の背景で使用したユーザーは、とても気に入ったと回答しています。
Alexandra: (笑)あ、いや。
Melanie: 彼の上司は、私の仕事を見ることができないといつも不満を言っていました。サイトの補色とカラーパターンを開発する必要がありました。色覚異常(またはその他の視覚障がい)のある人がウェブをどのように使用しているかについて、色のコントラストについて考えるようになりました。
UNC は州立大学であるため、WCAG のアクセシビリティ レベル AA に準拠することが米国連邦の要件となっています。教育機関であるため、レベル AAA を目指しました。
州と連邦の要件について詳しく学び、W3C アクセシビリティ仕様を読み始めると、「これはすべて理にかなっている」と思いました。見たところ、ウェブのほとんどは準拠していませんでした。もちろん、ウェブが存在する限り、ウェブ アクセシビリティに取り組んできました。特に JavaScript エンジニアは、デジタル アクセシビリティの導入に遅れをとることがあります。
私は、ユーザー補助をウェブの最後のフロンティアと呼んでいます。多くの優秀な社員がユーザー補助の自動化に取り組んでいます。Google は、パフォーマンスやセキュリティなど、他の難しい問題に取り組んできたのと同じ方法で、解決策に取り組む必要があります。
Alexandra: 海軍と UNC で、長くて複雑なドキュメントをたくさん読んだと思います。仕様がわかりにくかったと感じましたか?
Melanie: 理解するまでに 5 回ほど読み直しました。他の仕様も読んだことがありますが、私はいつも、理解できない場合は気にしないように言っています。私自身、仕様を 5 回読まなければならなかったからです。冗談じゃないよ。
仕様言語に慣れるには時間がかかります。正しく解釈しないと、間違った対応をしてしまう可能性があります。また、仕様の言語の多くがブラウザ デベロッパー向けであることを理解しておくことも重要です。ウェブ デベロッパーを指す言葉なので、「作成者がすべきこと」を探してください。
Alexandra: 多くのデベロッパーが仕様を解読できるようになれば、ウェブの質は向上するでしょう。
Melanie: 解釈を代行してくれるサイトには、多くのメリットがあります。私は a11y-automation.dev を作成しました。このサイトは私のサイド プロジェクトのようなものです。ユーザー補助に関するすべての違反を項目別に分類し、該当する WCAG の成功基準にリンクするようにしています。エラーを防ぐ自動化がある場合は、そのソリューションを提案します。
違反の可能性のあるリストを把握することもできますが、より重要なのは、違反を修正する方法を知ることです。自動修正が存在しない場合は、リンターやテンプレートを作成することや、テストを作成するきっかけになるかもしれません。
私はオープンソースで仕事をするのが好きです。なぜなら、お互いに相応の便宜を図ることで、改善を提供できるからです(改善される場合もありますが、私たち全員が最善を尽くします)。互いの成果を基に開発を進め、ウェブにとって非常に優れた成果を上げています。
ユーザー補助に資金を提供する方法
Alexandra: pleasefunda11y.com にとても惹かれました。開発者にアクセス可能なサイトの構築方法を学んでもらうことはとても重要ですが、経営陣による資金提供と承認がなければ、必ずしもリソースを利用できるとは限りません。このサイトを構築したのはなぜですか?
Melanie: ユーザー補助への資金が十分に割かれていないことに不満を感じていました。オープンソースの資金はすべて CSS に流れ続けているようです。私は CSS が大好きです。CSS でできることはたくさんあります。
このサイトを作成したのは、Chrome ソフトウェア エンジニアリング マネージャーの Addy Osmani から、ユーザー補助の資金提供をリクエストしているのを見たが、具体的にどのような作業に資金提供できるかアドバイスが欲しいという連絡を受けたためです。これは大きな問題です。オープンソースの資金提供者は、成果が確定していない一般的なアイデアではなく、特定のプロジェクトに資金を提供したいと考えています。時間をかけて、具体的な取り組み、必要なもの、サイトのアクセシビリティ向上にどのように役立つかを書き出しました。
私なしで企業がこれらの取り組みを構築しても、ウェブ上のユーザー補助を大幅に前進させることができます。これは他のウェブ活動と比較して非常に少額の費用であり、人々の生活に大きな影響を与えます。
現在の考え方は、多くの場合「障がいのある人はどのくらいいるの?」という考え方です。「どのような人がテクノロジーと関係しているのか」
「色覚異常は障がいではない」と考える人もいます。色覚異常がある場合、自分自身を障がい者とは認識していないかもしれませんが、テクノロジーとの関係には影響します。
Alexandra: テクノロジーとの関係を理解する方法について教えてください。これはユーザー補助とどのように関係していますか?
Melanie: たとえば、神経多様性のあるユーザーには、非常にシンプルな言語と非常に明確な指示が必要になる場合があります。フロー内の 3 ~ 4 つの画面を移動し、最後まで選択を進めていく方が適している場合があります。最新の技術アプリケーションに関する適切なガイダンスはありません。
デベロッパー オペレーションを行っている企業はたくさんありますが、そうしたウェブサイトの一部を使用すると、驚くほど使いづらいと感じます。Google では、最近、すべてのインターフェースにあらゆる機能を詰め込んでいます。
Alexandra: 例を教えてください。
Melanie: たとえば、GitHub にはネストされたタブを含むプルダウンがあります。そして [怒ったため息]。(イライラしていても)怒ってはいけません。最新のウェブは、新しい需要に応じて成長する必要があります。一方で、誰も取り残さない方法で構築する責任も負っています。
それが私の原動力であり、情熱です。仕事で使う必要のあるツールにアクセスできないので、誰かが仕事を受けられなくなるのは避けたいと考えています。
Alexandra: 100 パーセントです。多くの場合、外部ユーザー向けにアクセス可能なプロダクトを構築することを考えますが、必ずしも社員のことを考えているわけではありません。
Melanie: この資金調達に関するアドバイスは、おそらくすべての人に役立つだろうと思いました。
エンジニアから、ユーザー補助を実施したいが「会社が関心を示さない」という話がよく聞かれます。きっと気にかけてくれているはずです。ビジネス ロジックのギャップを埋めるだけです。ビジネスにとっての有益な結果を示します。もちろん、このサイトはオープンソースです。皆様からの貢献や編集を歓迎します。
Alexandra: 多くの場合、ユーザー補助はプロセスの最後まで残されます。「後でユーザー補助を追加すればいい」という考え方です。ただし、後で追加するよりも、プロジェクト全体にユーザー補助のプラクティスを統合するほうがはるかに時間がかかります。
Melanie: 私はよく、「1 回だけビルドして支払うか、2 回ビルドして支払うか」と尋ねます。
Ember.js と主要なユーザー補助チーム
Alexandra: あなたは Ember.js フレームワークのコアチームにも参加していると聞きました。どのように関わるようになったのですか?
Melanie: 私は、JPMorgan Chase の企業投資銀行プラットフォームで働くために採用されました。Ember は、非常に安定した(退屈な場合もある)ベースが必要な場合に使用される、ヘビーデューティな JavaScript フレームワークです。これにより、コストのかかるコードの記述を回避できます。Ember には下位互換性が保証されており、メジャー バージョンであっても、毎回アップグレードできます。アプリが壊れることのないよう、段階的に処理するようにしています。
とにかく、私は Ember カンファレンスに参加し、コミュニティの多くの人と出会いました。Ember の人たちはとても親切だった。そして、他の地域ではまだ見たことのない非常に強力な行動規範があります。
軍を出たとき、安全保障に入りたいと思っていました。情報セキュリティの交流会に行ったけど、他の女性は見なかったよ。年配の男の子が私を見て「本当に正しい部屋にいますか?」と言いました
Alexandra: [うめき声] 痛い。これはまったく驚くべきことではありません。私も同じような経験があります。
Melanie: 2011 年か 2012 年だったと思います。状況は大きく変化しています。私はその夜、そのミートアップを最後まで残り、自分の主張を証明しました。私はそのコメントに屈するつもりはありませんでした。冗談を言い、メモをとり、会話に参加することで、私がそこにいることを周囲に知らせました。私はキャリアの中で 男性の過ちを証明してきました
しかし、男性が間違っていることを証明するためだけに女性がソフトウェア エンジニアになることは望んでいません。ソフトウェア エンジニアになって素晴らしいものを作りたいと思いました。それは楽しいことだからです。女性にもそのようなキャリアの選択肢があるべきです。
Alexandra: はい。
Melanie: 銀行プラットフォームとして、米国連邦政府の要件に準拠する必要があるため、ユーザー補助について知っていることを Ember コミュニティと共有しました。Yehuda Katz と Tom Dale は、「チームにギャップがあります。JavaScript のエキスパート、パフォーマンスのエキスパート、非常識な知識を持った人がたくさんいます。そのため、ユーザー補助の知識を持つ人材が必要です。」そして、コアチームへの参加を招待されました。
私は、デフォルトで Ember のアクセシビリティを確保するための取り組みを進めています。つまり、ember new <my-app-name>
と宣言すると、すぐに WCAG の成功基準を満たす必要があります。
Alexandra: GitHub で Ember のアクセシビリティ ツールの長いリストを見つけました。Ember コミュニティのユーザーは、これらのツールへの貢献に喜びを感じていますか?
Melanie: この仕事は、とても楽しみでした。LinkedIn で働いていたとき、私は Ember のユーザー補助リンティング ルールを作成しました。その後、私は LinkedIn を離れて Hashicorp に勤務しましたが、他の人たちは lint が有用であるため、引き続き lint に貢献しています。それが、この仕事の魅力であり、ワクワクするところです。
Google は、基本として、ユーザー補助は市民権であると考えています。それは議論の余地はありません
議論するのは、何を導入できるかです。どのタイミングで、どのように作成すればよいですか?これを教え、下位互換性を持たせるにはどうすればよいですか?デベロッパーが開発や計画が必要な大きな追加機能なしでユーザー補助機能サポートを提供できるようにするには、どうすればよいでしょうか。
Alexandra: ユーザー補助は公民権です。そしたらびっくりする!真実として誰もが知っていることである必要があります。
Melanie: 「私は盲目ならインターネットは使わない」など、無知な発言をされることがありました。「ユーザーの 90% には問題ないのに、ユーザーの 5% だけに配慮するのはなぜですか?」という質問もよく聞かれます。私はこのような議論は行いません。なぜなら、仕事から注意をそらすために使われることが多いからです。
アクセシビリティに配慮したコードを記述すると、W3C 仕様に基づいてサイトを構築することを検討しているため、パフォーマンスが向上します。div ではなくセマンティック HTML を使用し、ヘッダーを使用します。<div>
にクリック イベントを追加する代わりに <button>
を選択すると、パフォーマンスが向上します。
1 つのことをする: ユーザー補助を自動化する
Alexandra: アクセスしやすいウェブサイトを構築するために、ウェブ デベロッパーがすべきことは何ですか。
Melanie: 自動化を追加します。使用しているフレームワークやコードの種類に応じて、既存のリンターを使用します。どちらを使用しても構いません。これらのルールのいずれかに違反すると、ビルドが中断されます。
AI はまだ意図を解読できないため、一部の作業は自動化できません。たとえば、画像の代替テキストの値は意味のあるものにする必要がありますが、これは実際にはどういう意味でしょうか。現時点では、自動化ではなく人間が判断する必要があります。
一方、自動ツールは「色のコントラストが基準を満たしていません」と警告します。修正してください。戦うのはやめて、「でも、嫌いだ。こういう方法が好きだ」と言うのはやめましょう。これはあなた個人に関するものではありません。世界中のすべてのユーザーが毎日 Google のサービスを利用できるようにすることです。
ユーザー補助は長い道のりであり、常に学び続けます。私は 10 年以上にわたってユーザー補助を専門としており、今でも常に新しいことを学んでいます。防御的にならず、ただ実行する。
Melanie の取り組みについては、ウェブサイト(melanie.codes)と Twitter(@a11yMel)で最新情報をご確認ください。pleasefunda11y.com、a11y-info.com、a11y-automation.dev で、ユーザー補助に関するリソースをご覧ください。