はじめに
Figma向けの超シンプルなコントラストチェッカー「Simple A11Y」を作りました。
当初は“色変更もできる便利ツール”を目指していたのですが、エラー対応で歩みが止まり、思い切って「コントラスト比を正しく・安定して測る」一点に集中。
結果として、小さく始めて早く出すという狙いどおり、公開まで到達できました。
- 「選択した要素の前景/背景のコントラスト比(WCAG準拠)」だけを測る超シンプルなFigmaプラグインを作成。
- 多機能化でエラーが増えたため、ミニマムにピボットして安定化を優先。
- 審査でデモ動画の提出依頼に気づかず一度リジェクト・・・。
- 短いスクリーン録画を添えて再申請し、無事公開。
- 公開URL
https://www.figma.com/community/plugin/1544619476233354497/simple-a11y
背景と方針転換(なぜミニマムにしたか)
- 当初はバイブコーディングの勉強を兼ね、色変更や周辺機能も含めた“もりもり便利セット”を目指したが、実装中にエラー頻発・挙動不安定化。
- 完成と保守性を優先し、「正確に・安定して・迷いなく使える最小機能」に絞る方針へ切り替え。
- バイブコーディングの練習としても「壊れない最小の成功体験」を先に積むことを重視。
プラグイン仕様(最小構成)
- 目的:アクセシビリティ確認の最短動線を用意する。
- 機能:選択した要素のコントラスト比の計算と合否(WCAG準拠)の表示のみ。
- 非機能(今回あえて採用しないもの):データ保存、ネットワーク通信、ユーザー認証、バックエンド連携など。
- ポリシー:依存を極力減らし、まずは「動く/使える/壊れない」を担保。
審査で起きたこと(タイムライン)
- 2025/09/02 18:29 UTC(JST 09/03 03:29)
- Figmaサポートより「動作のスクリーン録画(またはデモ動画)を提出してほしい」との依頼。
- 2025/09/05 18:31 UTC(JST 09/06 03:31)
- 「3営業日以内の返信がなければリジェクトする可能性あり」とのリマインド。
- 返信漏れ → 非承認(not approved)
- 「準備できたら再申請OK」との案内。
- デモ動画を用意して再申請 → 承認・公開
教訓:審査はアウトプットだけでなく、レビュー担当とのコミュニケーションも含めたプロセス。
デモ動画は60秒未満
デモ動画は60秒未満なので一機能飲みの紹介しかできない
- 起動 → 権限ダイアログ → UI表示 → 対象選択 → 測定 → 結果表示、の一連を一発撮り。
- 1タスク完結(対象選択→測定→合否/比率/基準表示)を最短で見せる。
申請フォームで問われた要点(翻訳)
1. プラグイン/ウィジェット用のバックエンドサービスをホストしていますか?
・いいえ、ホストしていません。
・はい、ただしプラグインAPI由来のデータはバックエンドへ送信しません。
・はい、プラグインAPI由来のデータをバックエンドへ送信します。
2. ホストしていないサービスにネットワークリクエストを送信しますか?(複数選択)
・行いません。
・静的アセットへのリクエストのみ(プラグインAPI由来データは含まない)。
・分析ツールへのリクエスト(プラグインAPI由来データは含まない)。
・上記以外のネットワークリクエストがあります。
3. ユーザー認証を使用しますか?
・いいえ、不要です。
・Auth0/Googleログイン等のサードパーティで処理します。
・自前サイトで処理します。
4. プラグインAPIから取得したデータを保存しますか?(複数選択)
・保存しません。
・ローカルに保存します(例:localStorage、figma.clientStorage、node.setPluginData)。
・上記以外の方法で保存します。
5. アップデートはどう管理していますか?
・個人開発者として自分で管理しています。
・チームでレビューを経て公開しています。
・その他
使い方(最短手順)
- 対象ファイルをFigmaで開く。
- 対象要素(テキスト/背景など)を選択。
- Simple A11Y を起動。
- 画面上にコントラスト比と合否(WCAG基準)が表示される。
公開リンク
Simple A11Y(Figma Community)
https://www.figma.com/community/plugin/1544619476233354497/simple-a11y