LINEミニアプリの アクセシビリティ向上 ノウハウ #CM_LY_a11y

LINEミニアプリの アクセシビリティ向上 ノウハウ #CM_LY_a11y

2025年3月28日にクラスメソッド日比谷オフィスで開催した「クラスメソッドとLINEヤフーが語るLINEミニアプリのアクセシビリティ」にて、持田が登壇した際の資料と内容です。
Clock Icon2025.04.02

はじめに

2025年3月28日にクラスメソッドとLINEヤフーが語るLINEミニアプリのアクセシビリティを開催しました。

イベントの内容については別記事でご紹介しますが、この記事では、私の登壇セッションについてご紹介します。

私は「LINEミニアプリのアクセシビリティ向上ノウハウ」というテーマで登壇させていただきました。

登壇内容 - 「LINEミニアプリのアクセシビリティ向上ノウハウ」

表紙

スライド: LINEミニアプリのアクセシビリティ向上ノウハウ クラスメソッド株式会社 持田 徹

LINEミニアプリのアクセシビリティ向上ノウハウというタイトルで、クラスメソッド株式会社の持田徹からお話させていただきます。

自己紹介

スライド: 持田 徹(もちだ とおる) クラスメソッド株式会社 リテールアプリ共創部 コーディネーター リテールテックやモダンオフショアを活用した共創開発に携わる アクセシビリティの問題に関心を持ち活動を続けて20年以上 アクセシビリティに関する業務、講演や雑誌連載、書籍執筆等 右側に、登壇写真 赤いシャツを着て演台のマイクの前で話す様子 過去に執筆した書籍の表紙画像

自己紹介をさせてください。

持田徹と申します。

このイベントの会場になっている、クラスメソッド株式会社のリテールアプリ共創部という部に所属しておりまして、コーディネーターというロールでお話お仕事をすることが多いです。お客様とエンジニアを結ぶ役割です。

一般の消費者の方が使うようなアプリ、リテールテックを対象にすることが多く、また弊社はベトナムに拠点がありまして、ベトナムのエンジニアと、モダンオフショアという形でお客様と一緒にソフトウェアの開発を進める共創開発と呼んでるものを進めております。

私自身、アクセシビリティの問題に関心を持ち始めて、活動をはじめてもう大体20年以上経ってしまいまして、最初2002年からやってますんで、ずっと関心を持って活動しています。

以前はアクセシビリティに関する業務をしていたこともあったり、このような講演をさせていただいたり、雑誌の連載をしたり、右下に出ている本の書籍の一部を執筆したりしております。

今回のイベントの立ち上げについては、こういうイベントをやりたいと私が思い立ちまして中野さんにご協力いただき、こうのような形で実現できてすごく嬉しく思っております。

複数のLINEミニアプリ開発案件にたずさわって

スライド: ・アクセシビリティ関連の法律などは、一般に公共サービスの方により高いレベルを求めます。しかし、買い物などに利用する民間サービスも、生活での利用機会は多いと感じます・本年6月に施行される欧州アクセシビリティ法(EAA)では、公共だけでなくECや金融など、民間で提供されるサービスも幅広く対象としています・私たちも、公共系だけが高いレベルのアクセシビリティを求められるという印象の転換が迫られているのではと感じます・生活での利用機会が多いLINEミニアプリのアクセシビリティ向上にも意義があるように思います

私自身は、複数のLINEミニアプリの開発案件に携わってきました。

その中で考えたことですが、国内外問わず、今までにあったアクセシビリティに関連する法律などは、一般的には公共系のサービスの方に、より高いレベルのアクセシビリティを求めることが多かったと思います。

それはもちろん重要ですが、普段の生活で利用する買い物などの民間のサービスも、生活の中で接触機会が多いかと思います。

例えば、本年の6月に欧州で欧州アクセシビリティ法という法律が施行されますが、この法律では、公共系だけではなく、ECや金融など、民間で提供されるサービスも幅広く対象としています。

このような点からも、私達も公共系だけが高いレベルのアクセシビリティを備えておくべきだというイメージから、民間でも広く生活の中で接触機会が多いものに関してはアクセシビリティを向上していくってことが大事なのかなというふうに感じております。

今回のイベントがLINEミニアプリのアクセシビリティということで、生活の中での利用機会が多い出会いミニアプリのアクセシビリティ向上にも一定意義があるのかなというふうに思っております。

基本的な考え方

スライド: 基本的な考え方

ここからは、LINEアプリのアクセシビリティを考える上での基本的な考え方をお話しします。

LINEミニアプリのアクセシビリティ

スライド: ”・LINEミニアプリは、ライフスタイルのさまざまなニーズに応えるサービスを、LINE上で提供できるウェブアプリケーションです。”https://developers.line.biz/ja/services/line-mini-app/・Webアプリであれば、一般のWebアプリケーションと同じ考え方でアクセシビリティを向上させれば十分なのでは?→ 一般のWebアプリケーションのノウハウだけでなく、LINEプラットフォーム固有の考慮点があります!今日は、その固有の考慮点に絞ってお伝えします!

LINEミニアプリのアクセシビリティについて、先ほど中野さんや慶島さんからもお話がありましたが、LINEミニアプリ、「ライフスタイルの様々なニーズに応えるサービスをLINE上で提供できるWebアプリケーションです」とドキュメントにも書かれておりますので、基本的にはWebアプリケーションですねという話になります。

Webアプリケーションであれば、一般的なWebサイトとか、Webアプリケーションと同じ考え方で、アクセシビリティを向上させれば十分なのかなと最初に考えますし、私もそう思っていましたが、一般的なWebアプリケーションのノウハウももちろんですが、LINEプラットフォームの上で動いているということで、LINEプラットフォーム固有の考慮点があります。

今日はWCAGなどの、一般的なWebアプリケーションのアクセシビリティ向上ではなくてLINEプラットフォーム固有の部分に絞ってお伝えできればと思っております。

3つの観点

スライド: ・システムの設計時・LINEミニアプリへのアクセス経路・LINEミニアプリ自身のUI

私が考える、LINEのアクセシビリティを考える上での3つの観点があります。

1つ目はシステムの設計時にどうするのか。

2つ目は、LINEミニアプリへのアクセスの経路、つまりLINEを開いて、LINEミニアプリにアクセスする際にどのような経路をたどってアクセスするのかという観点。

3つ目は、LINEミニアプリ自身のUIと分けて考えるのが良いかなと考えております。

1.システムの設計時

スライド: 1. システムの設計時
続いて、それぞれ詳しくお話をしようと思います。最初は、システムの設計時について。

アクセシビリティもシフトレフト!

スライド: ・ソフトウエア開発において、ソフトウェアやシステムのテストを、プロジェクト・ライフサイクル(工程)のより早い段階で実施しようとするアプローチです(従ってプロジェクト・タイムラインの左に移動します)。・最近では、開発システムのセキュリティを高めるためにも、プロジェクト・ライフサイクルのより早い段階から、繰り返しセキュリティを作り込む作業を繰り返すことが重要であると言われるようになってきました・アクセシビリティも、セキュリティと同様に非機能要件であり、より早い段階で考慮することが、後のコストの増大を抑えるケースが考えられます・アクセシビリティもシフトレフト! | The Golden Rule

まずは、設計時の考え方について先にお話しようと思います。「アクセシビリティもシフトレフト」というタイトルをつけました。

「シフトレフト」とは、ソフトウェア開発において、ソフトウェアやシステムのテストを、あまり考えずに実施すると、システムが完成した後にテストすることがありますが、ソフトウェア開発工程の、より早い段階で実施していこうというアプローチのことを指します。

そのため、プロジェクトの工程を図示すると、左から始まって、「設計」→「開発」→「テスト」のような図に表すと、より左側に行くとより早い段階になるので、シフトレフトと呼ばれます。

一般的には、開発システムのセキュリティを高めることも同様にシフトレフトが重要だと言われており、プロジェクトにおいて、ソフトウェアの完成後にセキュリティ対策をするのではなく、設計の段階からセキュリティを考慮しておくことが重要だと言われます。

アクセシビリティもセキュリティと同様に非機能要件であり、セキュリティと同様の性質を持っているため、より早い段階、より設計に近い、上流工程の部分から、アクセシビリティを考えることが、後々のコスト増加を抑えるというケースが考えられるかと思います。

私の個人の方のブログで、10年ほど前の記事ですが、アクセシビリティもシフトレフト!という記事を書いておりますので、もしよろしければご覧いただければと思います。

QRコードを利用する場合には代替手段を設ける

スライド:・LINEミニアプリでは APIを呼ぶことで簡単に2次元コードが利用可能・QRコードは、キー入力の手間を省く有力な手段・システムの入力手段がQRコードのみであれば、視覚に依存している・QRコードで得るデータ(URL、商品コード、Wifi接続情報など)を入力できる別手段を確保する・位置情報に依存するQRコード(展示品の説明など)は、LINE Beaconなどで代用するか、参照すべきURLがわかる手段を用意する

LINEミニアプリ開発の設計段階からアクセシビリティを考える例の1つとして、QRコードを利用する場合には代替手段を設けましょうというお話です。

LINEミニアプリには、さまざまなAPIがありますが、そのAPIを呼ぶだけで簡単にQRコードが利用可能です。LINEアプリはスマホで利用することからも、割とLINEミニアプリからQRコードを使うケースが多いと思います。

QRコード自身は、キー入力の手間を省くという意味では、すごく有力な手段ですが、LINEミニアプリの入力手段がQRコードのみの場合は、視覚に依存した設計になっています。

このスライドを製作中に伊敷さんにお話を伺いました。

最近、飲食店などでテーブルオーダーはテーブルのQRコードを読んでくださいという方式があると思います。

当然、伊敷さんのように視覚に障害のある方は、どこにQRコードがあるかが把握できないので、たとえば手触りで、ここにQRコードがあるかなと思ってそこをカメラで読むというお話を伺いました。なかなか厳しいと思います。

QRコードしかない状態は、視覚に依存してしまっているので、視覚に障害がある方のことを考えられてないといえます。

URLや商品コード、Wi-Fiの接続情報など、QRコードで得られるデータがあると思います。それらのデータを入力できる別の手段を用意する方がよいと考えます。

もう一つ、位置情報に依存するQRコードもあると思います。例えば博物館の展示やお城などを見て回る際に、この部分のガイドを、このQRコードを読めば解説音声が聞けますというシステムがあると思います。これは位置情報に依存して、かつ、視覚にも依存しているQRコードなので、例えばLINE Beaconを併用してその位置にくるとプッシュ通知がくるなど、そのような手段で、参照すべきURLがわかる工夫ができればよいと思われます。

このような観点も、設計時から考えるのがよいかと思います。

外部ブラウザに遷移する前に知らせる

スライド: LINEミニアプリのエコシステムには、3つのブラウザが存在します。・LIFFブラウザ・LINE内ブラウザ・外部ブラウザ/LIFFブラウザの制約上、LINEミニアプリから外部ブラウザを開かざるを得ない場合もあります。このような場合は、「この操作を行うと別ブラウザが開く」と事前に知らせるようにします。G201: 新しいウィンドウを開くときに、利用者へ事前に知らせる

「システムの設計時から考える」の2つ目として、「外部ブラウザに遷移する前に知らせる」があります。

LINEミニアプリを開発する際にはブラウザの3種類あることを意識する必要があることを学びました。

1つはLIFFブラウザ、2つ目がLINE内ブラウザ、もう1つが、iOSでいうSafariのような外部ブラウザの3つです。

このうち、主に利用するのはLIFFブラウザですが、制約があります。そのため、LINEミニアプリで、LIFFブラウザだけでは処理が完結できないことが結構あります。

その際には外部ブラウザを開かざるを得ないため、たとえばiOSのLINEアプリを操作していると突然、Safariが開いたりすることがあります。

この、外部ブラウザを開くタイミングでは、先ほどのデモにあったスクリーンリーダーのフォーカスが外れてしまいます。
WCAGの達成方法(Techniques)には、「事前にこの操作を行うと別ブラウザが開くことを知らせましょう」というものがありますので、このような配慮があるといいなと思いました。

G201: 新しいウィンドウを開くときに、利用者へ事前に知らせる

2. LINEミニアプリへのアクセス経路

スライド: 2. LINEミニアプリへのアクセス経路

3つあった大きな観点の2つ目、LINEミニアプリのアクセス経路についてお話をします。

アクセス経路の方針

スライド: 1.複数のアクセス経路を確保する 2.それぞれのアクセス経路をアクセシブルにする

「アクセス経路」、つまりLINEミニアプリにたどり着く経路の部分に関しての考え方についてです。

大切なことは、複数のアクセス経路を確保することと考えており、複数のアクセス経路を確保した上で、それぞれのアクセス経路をアクセシブルにしていくことが大事と思っております。

複数のアクセス経路を確保する

スライド: ・「リッチメニューが唯一アクセス経路」であれば、複数設けるようにする・リッチメニューに対応できないアクセシビリティの問題がある場合の対策・あいさつメッセージやボット応答のメッセージ内リンク、ホーム画面ショートカット など/WCAG 達成基準 2.4.5 複数の手段

LINEミニアプリにたどり着く経路として、複数のアクセス経路を確保することが重要です。よくあるのは、リッチメニュー(LINEのオフィシャルアカウントと友達になったときに下から表示されるボタン)からのみアクセスできるパターンです。

もしリッチメニューにアクセシビリティの問題があると、せっかく作ったLINEミニアプリが使えなくなってしまいます。そのため、以下のような複数の手段を設けることが大切です:

  • 挨拶メッセージ(お友達になった瞬間に出てくる自動で出てくるメッセージ)にリンクを設置
  • ボット応答(コマンド送信時の自動返信メッセージ)にリンクを設置
  • HOME画面ショートカット機能(iOSやAndroidのホーム画面に直接ミニアプリにアクセス可能なショートカットを作成できる機能)の活用

WCAGの達成基準2.4.5「複数の手段」、これはWebサイトでは、ページにアクセスする経路としてサイトマップ以外に検索機能でもアクセスできるようにしましょうという達成基準ですが、これを応用して、LINEミニアプリにアクセスできる経路を複数設けるという考え方がいいかなと思っております。

アクセス経路をアクセシブルにする

スライド: リッチメニュー設計時の注意点・ボタンサイズを十分に大きく・タップターゲットは44×44px以上を確保して誤タップを防止・特に切り替えタブは注意する・色のみで情報を伝えない(アイコンやテキストを併用)・十分なコントラスト比を確保(4.5:1以上を推奨)・達成基準 2.5.5 ターゲットのサイズ・達成基準 1.3.3 感覚的な特徴・達成基準 1.4.3 コントラスト (最低限)

複数のアクセス経路を設けた上で、それぞれの経路をアクセシブルにすることも重要です:

  • リッチメニューのボタンサイズは十分に大きくする(44×44ピクセル以上)
  • 色のみで情報を伝えるアイコンを避ける
  • アイコンとテキストを併用する
  • コントラスト比4.5:1以上を確保する

リッチメニューのボタンサイズについては、例えば指が震えてしまったりとか、細かいターゲットをきちんと正確に押せない方もいらっしゃいますので、ボタンサイズは十分に大きくします。

特にタブ切り替えの画像があるリッチメニューでは、だいたいタブ部分が小さいため、工夫して大きな領域を確保するようにします。

3. LINEミニアプリ自身のUI

スライド: 3. LINEミニアプリ自身のUI

3つあった観点の最後、LINEミニアプリ自身のUIについて考えていきます。

考慮する点

スライド: ・コンテキスト認識の困難さ: ユーザーは「LINEアプリ内」かつ「WebView内のミニアプリ」という二重のコンテキストで操作しており、この二重構造がスクリーンリーダーユーザーにとって状況把握が難しい可能性があります・フォーカス制御: フォーカスの制御が可能なのがミニアプリのUI部分にかぎられるため、スクリーンリーダーユーザーにとって操作が困難になり得ます・トークバック(戻るボタン)の認識困難: スクリーンリーダーユーザーはLINEアプリの戻るボタンの存在を認識しづらく、操作が難しくなります・リッチメニューとアプリの関係性: リッチメニューからアプリへの遷移が視覚的に明確でも、スクリーンリーダーユーザーには文脈が伝わりにくいと思われます

LINEミニアプリのUIのアクセシビリティについて考える時の考慮点について、最初はコンテキスト認識についてです。

LINEミニアプリは、LINEアプリの中のブラウザ内で動作するという「三重底」のような構造になっています。このため、特にスクリーンリーダーユーザーにとっては、以下のような難しさがあります:

  • フォーカスの精度が難しく、今どの枠にいるのかの把握がWebアプリに比べて困難
  • 戻るボタンなど、LINEミニアプリの枠に設けられた機能の存在認識が難しい
  • リッチメニューからLINEミニアプリへの遷移など、視覚的には分かりやすい構成が読み上げ順では伝わりにくい

対応する方向性

スライド:・コンテキスト情報の明示的提供: ウィンドウタイトルも含め、ユーザーが現在どのような状態にあるのかを常に明確に伝える・冗長なフィードバック: 視覚的変化に加え、テキストでも状態通知を徹底・代替手段の複数提供: LINE特有機能に依存しない操作方法も併せて提供する・明示的なナビゲーション案内: LINEアプリ内での移動方法を具体的に説明

これらの制約の中での対応方向性として:

1. コンテキスト情報を明確に伝える

  • SPAでよくある問題(画面が変わってもウィンドウタイトルが変わらない)に注意
  • ユーザーの現在の状態を常に明確に伝え続ける

2. 視覚的な変化だけでなく、テキストでも状態変化を通知する

  • 初期化プロセスの状態や画面変化、ダイアログの表示などをスクリーンリーダーに適切に伝える
  • WAI-ARIAのライブリージョンを利用して「読み込み中」「読み込み完了」「エラー発生」などの状態変化を伝える

3. 代替手段の複数提供

  • LINEの戻るボタンだけでなく、アプリ内にも戻るボタンを設置
  • ナビゲーション案内を明確に提供する

コンテキスト: 初期化などの画面状態の通知

スライド: ・初期化プロセスなどの画面状態を通知する:liff.init() 実行中や完了時の状態を、スクリーンリーダーユーザーに適切に伝えます。・WAI-ARIAのライブリージョンを利用してミニアプリの読み込み中、読み込み完了、エラー発生などの状態変化を通知します・達成基準 4.1.3 ステータスメッセージ・ARIA22: ステータスメッセージを提示するために role=status を使用する

「コンテキスト情報を明確に伝える」の一例です。

私も、よく開発中のLINEミニアプリのソースコードを見ますが、だいたい最初に初期化プロセスが走ります。
その時には、画面にはローディングアイコンなどが表示されますが、その状態、今、初期化中であることを、スクリーンリーダーに適切に伝えていいきます。

また、WAI-ARIAのライブリージョンを利用して、読み込み中、読み込み完了、エラー発生のような状態変化を伝えていくことが重要と思っております。

まとめ

・WCAGを参照するなど、一般的なWebアプリケーションのアクセシビリティ向上策は順次対応する・システムの設計時に、モバイル特有の要件が特定の感覚器に依存しているところがないか確認し、ある場合は代替手順を確保する(シフトレフト)・外部ブラウザを開くところがないか確認し、あれば対策する・LINEミニアプリへのアクセス経路がリッチメニューだけの場合は別の経路でURLにアクセスできるようにする・フォーカス制御など、LINEミニアプリに固有の制約を考慮し、UIで可能な範囲で対策をしていく

  1. 一般的なWebアプリケーションのアクセシビリティ向上策(WCAGなど)は順次対応する
  2. モバイルアプリ特有の要件(位置情報、QRコードなど)が特定の感覚器に依存していないか確認し、ある場合は代替手段を提供する(シフトレフト)
  3. 外部ブラウザを開く場合は事前に通知する
  4. LINEミニアプリへのアクセス経路を複数確保する
  5. フォーカス制御やLINEアプリ固有の制約を考慮し、実現可能な範囲で対策を行う

以上で終わりたいと思います。ありがとうございました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.