
2025.02.18
「売上をスケールする」AIの使い道とは アルペンが挑む、kintone×生成AIの接客データ活用法
GTXiLibで小さく始めるAccessibility Testing(全1記事)
リンクをコピー
記事をブックマーク
satoshin21氏:よろしくお願いします。「GTXiLibで小さく始める Accessibility Testing」というタイトルで発表させていただきます。
今日はAccessibilityをテーマに話します。まずAccessibilityについてなのですが、これは高齢者や障がい者も含めてあらゆる人がどのような環境においても柔軟に利用できるのかどうかの指標を表しています。
聞いたことある方いらっしゃると思うんですが、iOSでもアプリ上でVoice OverやVoice Controlなどをサポートすることができます。実際の対応方法についてはさまざまな資料がありますので、今回は割愛させていただきます。
ぶっちゃけた話なんですけど、「Accessibility対応の優先順位を高めている人っているのかな?」と思うのですがいかがでしょうか?、重要性は認識しつつも、デザイナーサイドとも認識を合わせつつ対応が必要な部分もあったりして優先順位的には下がっちゃうのかなと思います。
AppleのほうからAccessibility Inspectorという名前で簡単にAccessibility Checkができるようなツールも配布されているんですが、「これをデザイナーの方に立ち上げてもらうのか?」「リリースの都度実行してチェックするのか?」「実際に運用できるのかな?」という不安もあり、我々はエンジニアなのでできるのであれば自動化したいところです。
そこで今回紹介させていただきたいのがGoogleのGTXiLibです。
Googleの提供するオープンソースのAccessibility Test自動化ツールです。
既存のテストがXCTestでUIテストが作られている場合は簡単に統合ができるんですが、ちょっと残念なところはXCUITestが非対応というところです。代わりにGoogleの提供するEarlGreyというテストフレームワークを使えば、XCTestベースのフレームワークなので対応可能です。
これがすごく簡単に実装できまして、XCTestCaseのセットアップでGTXiLibのinstallメソッドを渡すだけで、テストケースでなにかしらのUIテストが行われれば、それをフックしてAccessibilityテストが実行されます。
GTXChecksCollectionがありまして、もうすでにGoogleからいくつかAccessibility Testが提供されているのでそれを利用することもできます。さらに、自分でこういうかたちのAccessibility Testを実行したい、というものがあるときは自前でテストケースを書くこともできます。
これがサンプルで、ラベルの高さが44以上になることをテストするためのテストケースです。GTXiLib.checkというところで作っていて、elementに例えばUIViewなどが渡されるので、そこからチェックをすれば自前で作ることが可能です。
ざっくりとした仕組みについて解説すると、GTXiLibCore.mを参照してもらえばわかると思うんですが、testCaseの開始と終了をフックしてUIApplication.sharedからkeyWindowを取得、それにぶらさがっているViewに対してすべてのGTXCheckingを実行しています。
実装しててよく「あれ、これ完全にAccessibility悪いのにテスト通っちゃうな?」というところがあったんですが、そういう場合はなにかしら、例えばisAccessibilityElementがtrueになってなかったりするので、テストを通っちゃうときはソースコードを見たほうが早いかなと思います。
UITestをちゃんと書けていない方も多いかと思います。僕もUITestって継続的に書くのは難しいと感じる事があります。そういう場合は小さいところから、UI ComponentだけでもAccessibility Testを始めてみるのはいかがでしょうか。
GTXiLibにはGTXToolKitが組み込まれていまして、これが実際にAccessibility Testを実行するクラスになっています。GXToolKitは基本的にほかのテストフレームワークに組み込むときに利用されるようなものなんですが、直接UIViewなどのelementを渡して、そのAccessibilityのチェックをすることも可能です。
例えば、UIButtonを継承したCustomizedButtonを作って、Accessibility対応をしたカスタムボタンを作ったとします。
それに対してUI ComponentをテストするときにはまずButtonのインスタンスを作成、サイズを指定をします。
それでGTXToolKitのregisterCheckに実行したいテストケースを全部追加します。
そして、toolKit.checkElementに対してそのボタンを渡すことで、それのAccessibility Testが実行されて、resultで結果を受け取ることができます。
GTXiLib.check()のように実際のプロダクトベースのUIテストではないので完璧ではないというか、本当に局所的なテストになっています。例えば背景色が透明なUI Componentsで実際に画面上に配置された時、背景色とのコントラストが大丈夫かというテストは難しいです。
例えばボタンのサイズが適切か、ボタンのtitleと背景色のコントラストが適切か、簡易的なチェックには有効ですので、ぜひとも試していただければなと思います。
あと、SwiftUIには未対応なんですが、先ほどの自前で作るGTXCheckingを作れば対応可能かと思います。では、Accessibility改善を少しずつ進めていましょう。というところで終わりにさせていただきます。
(会場拍手)
関連タグ:
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29
第20回エクゼクティブメンターイベント「今、「ひと」と組織が共創する〜働き方の未来へ」
2024.12.07 - 2024.12.07