Lab/Web API見本市

ブラウザAPI・カタログ公開中2026

ブラウザに標準搭載されたWeb APIを、対応判定・権限フロー・ライブデモ・コードの4ステップで体験できるカタログサイト。

サイトを開く
Web API見本市(ブラウザ標準APIを1ページずつ体験)

Screenshots

Web API見本市(ブラウザ標準APIを1ページずつ体験) スクリーンショット 1
Web API見本市(ブラウザ標準APIを1ページずつ体験) スクリーンショット 2

Overview

概要

ブラウザに標準搭載されながら知られていない強力なWeb APIを、安全に試せるカタログサイトです。音声合成・認識(Speech)、MIDI、Bluetooth、振動、バッテリー、クリップボード、共有、画面ロック、デバイス方位、スポイト(EyeDropper)、ファイルシステム、通知の12種を1ページ1APIで扱い、すべて『対応判定→権限取得→ライブデモ→コード』の統一4ステップで提示。権限フローの違いを比較でき、非対応ブラウザにも空白ではなくUIモックのフォールバックを返します。マイクやクリップボードのデータは一切サーバーへ送りません。

How to use

遊び方・使い方

トップのカタログには、今のブラウザでの対応可否がライブ判定で表示されます。各APIページでは、まず対応判定パネルと権限モデルの図解を見て、次にボタン操作(常にクリック起点)でライブデモを実行。ピアノを弾いてMIDIログを見る、Bluetoothのバッテリー残量を読む、振動パターンを鳴らす、画面の色をスポイトで拾う、テキストファイルを開いて上書き保存する——などをその場で体験できます。最後に20〜40行のコードを読んでコピー可能。/matrixでAPI×ブラウザの対応表を一覧できます。

Tech stack

技術スタック

TypeScriptNext.js 16React 19shikiTailwind CSS v4

唯一の実行時依存はコード表示のshikiのみ。権限はページ読込時に要求せずボタン操作で初めて発火させ、対応可否はaria-liveで読み上げます。ライトテーマのカタログ意匠で、カテゴリ(デバイス/メディア/OS/センサー/ファイル)ごとにアクセント色を分けています。

Highlights

工夫した点

  • 対応判定はuseEffect後にstateへ反映し初期描画はスケルトンにすることで、ハイドレーション不一致を回避。判定ロジックはsrc/lib/detect.tsへ集約
  • UA解析やポリフィルのライブラリを使わず、feature detectionとnavigator.userAgentDataで判定。EyeDropper等の未定義DOM型は自前の型定義で補う
  • 各デモはnext/dynamic(ssr:false)で読み込み、アンマウント時にMIDI/Bluetooth/WakeLock/SpeechRecognitionを解放。DemoErrorBoundaryで失敗時も画面を保つ

To improve

改善したい点

  • Chromium系のみ対応のAPI(Bluetooth/EyeDropper/File System Access等)が多く、Safari/Firefoxでは体験がフォールバックに留まる
  • iOSの方位センサー等、実機の権限フロー差の検証を継続する必要がある
  • 対応バージョン表は2026-07時点の手動検証で、自動更新の仕組みは未整備

What's next

今後の展望

  • WebSerial・WebHID・WebUSB・WebCodecsなど対象APIの追加
  • 対応表のcaniuseデータ連携による自動更新
  • 各APIの組み合わせ実用サンプル(例: MIDI→音声合成)の追加

Category

ツール・メディア

Genre

ブラウザAPI・カタログ

Year

2026

Status

公開中