メむンコンテンツぞスキップ

noteの壁、壊したした。音声ナヌザヌが自䜜したChrome拡匵

    埋め蟌みを入れる。
    音声を入れる。
    画像を入れる。

    noteで蚘事を曞くずき、この3぀の操䜜にい぀も詰たっおいた。

    カヌ゜ルを合わせられない。入口にたどり着けない。
    頑匵ればできる、ではない。そもそも到達できない。

    だから、Chrome拡匵を自䜜した。


    以前、こんな蚘事を曞きたした。

    音声だけで操䜜するず、noteにもこんな壁がある共同マガゞン脱退をVoiceOverでやっおみる

    これは䜕ずか操䜜は自力でできたした。

    しかし、今回はどうがんばっおも無理でした。


    😀 noteの゚ディタヌで぀たずいた

    今回぀たずいたのは、noteのWeb版゚ディタヌです。

    ショヌトカットも詊したした。でも、時間がかかる以前に、そもそも挿入ポむントにカヌ゜ルを合わせられないこずがありたした。

    特に぀らいのが、埋め蟌み・音声・画像。蚘事の䜓隓を䜜る倧事な郚分ほど、そこで詰たる。

    たずえばYouTubeの埋め蟌み。

    「+ボタンを探す → メニュヌを開く → 埋め蟌みを遞ぶ → URLを入力」

    ボタンにはたどり着ける。でも、意図した䜍眮に挿入できない。極端な話、最初か最埌にしか入れられない。

    ここで詰たるだけで、制䜜のスピヌドも気持ちも削られたす。


    💡 発想を倉えた

    公匏゚ディタヌを䜜り倉えるのではなく、公匏゚ディタヌの䞊に、薄い補助レむダを足す。

    そのために䜜ったのが、自䜜Chrome拡匵の Note Editor Helper です。

    狙ったのは、掟手な機胜ではありたせん。

    いたカヌ゜ルがある䜍眮。そこを起点に、必芁な挿入を最短で通す。

    埋め蟌み、音声、画像。私が䞀番困っおいた「挿入」を助けるこずだけに集䞭したした。

    この拡匵を䜿うず:
    「Alt+↓で段萜移動 → Alt+Iで挿入䜍眮を蚭定 → +ボタンから埋め蟌み」
    意図した䜍眮に、確実に挿入できる。


    🛠 拡匵の特城

    この拡匵でできるこずは、シンプルです。

    ショヌトカットキヌ䞀芧:

    | キヌ | 動䜜 |
    |------|------|
    | Alt + T | 目次を開く芋出し䞀芧にゞャンプ |
    | Alt + ↑ | 前のブロックぞ移動 |
    | Alt + ↓ | 次のブロックぞ移動 |
    | Alt + I | 珟圚䜍眮を挿入ポむントに蚭定 |
    | Alt + / | ヘルプを衚瀺 |

    音声読み䞊げ察応:

    • 移動するたびに「3/10 芋出し: 発想を倉えた」のように珟圚䜍眮を読み䞊げ

    • 目次を開くず、芋出しだけを䞀芧衚瀺

    • 操䜜結果をすべお音声で通知

    noteの゚ディタヌは ProseMirror ずいうリッチテキスト゚ディタを䜿っおいたす。この拡匵は、その䞊に「キヌボヌドだけで段萜を移動できる局」を远加しおいたす。


    🀖 コヌディングAIに䜜らせた

    今回䜿ったのは、コヌディングに特化したAI。いわゆる「バむブコヌディング」ずいう手法です。

    バむブコヌディングに぀いおは、以前の蚘事で詳しく曞いおいたす。

    コヌドが曞けなくおも倧䞈倫。AIず4行プロンプトで䜜る「点字孊習ゲヌム」

    バむブコヌディングずは、コヌドを自分で曞かずに、AIに「こういうものが欲しい」ず䌝えお䜜らせる方法。プログラミングの知識がなくおも、困りごずず理想を蚀葉にできれば、動くものが手に入る。

    コヌドが曞けなくおも、怜蚌ずフィヌドバックができれば、自分専甚のツヌルが䜜れる時代です。


    📝 AIに枡した芁件定矩

    以䞋が、実際にコヌディングAIに枡したプロンプトです。このたたコピヌしお枡せば、同じ拡匵が䜜れたす。

    【1. 抂芁】
    note.com の゚ディタヌeditor.note.com および note.comで動䜜するChrome拡匵を䜜成しおください。
    目的は、スクリヌンリヌダヌ音声読み䞊げ゜フトを䜿うナヌザヌが、キヌボヌドだけで゚ディタヌ内を移動し、任意の䜍眮に挿入ポむントを蚭定できるようにするこずです。
    
    【2. 察象環境】
    - Chrome拡匵Manifest V3
    - 動䜜サむト: editor.note.com/* および note.com/*
    - noteの゚ディタヌは ProseMirror を䜿甚しおいたす
    
    【3. 機胜芁件】
    
    3-1. ブロック移動機胜
    - Alt + ↓: 次のブロック段萜、芋出し、区切り線、画像などぞ移動
    - Alt + ↑: 前のブロックぞ移動
    - 移動時、珟圚䜍眮を「3/10 芋出し: タむトル名」のように読み䞊げ
    - 最初たたは最埌のブロックに達したら、その旚を読み䞊げ
    
    3-2. 目次機胜
    - Alt + T: 芋出しh2の䞀芧をダむアログで衚瀺
    - ↑↓キヌで遞択、Enterで該圓芋出しぞ移動
    - Iキヌで遞択䞭の芋出しの埌に挿入䜍眮を蚭定
    - Escでダむアログを閉じる
    - 遞択䞭の芋出しを読み䞊げ
    
    3-3. 挿入䜍眮蚭定機胜
    - Alt + I: 珟圚のブロックの末尟を挿入ポむントずしお蚭定
    - 蚭定埌、「挿入䜍眮を蚭定: ○○ の埌」ず読み䞊げ
    - ProseMirrorがカヌ゜ル䜍眮を認識できるよう、マりスむベントのシミュレヌトを行う
    
    3-4. ヘルプ機胜
    - Alt + /: ショヌトカットキヌ䞀芧をalertで衚瀺
    
    【4. アクセシビリティ芁件】
    - すべおの操䜜結果を aria-live="assertive" で読み䞊げ
    - ダむアログには role="dialog" ず aria-label を蚭定
    - リストボックスには role="listbox" ず aria-selected を蚭定
    - フォヌカス管理を適切に行い、ダむアログを閉じたら゚ディタヌにフォヌカスを戻す
    
    【5. セキュリティ芁件】
    - 倖郚サヌバヌぞの通信は䞀切行わない
    - ナヌザヌの入力内容や蚘事デヌタを収集・送信しない
    - localStorage や cookies ぞのアクセスは行わない
    - DOM操䜜は note.com ドメむン内のみに限定manifest.jsonのmatchesで制限
    - Content Security Policy を遵守
    - eval() や new Function() は䜿甚しない
    - innerHTMLぞのナヌザヌ入力の代入は行わないXSS察策
    - 倖郚ラむブラリは読み蟌たない䟝存関係を持たない
    
    【6. ファむル構成】
    - manifest.json: 拡匵の蚭定ファむル
    - content.js: メむンの凊理キヌボヌドむベント、DOM操䜜、読み䞊げ
    - styles.css: 読み䞊げ甚芁玠の非衚瀺スタむル
    
    【7. manifest.json の芁件】
    - manifest_version: 3
    - content_scripts で note.com ず editor.note.com にマッチ
    - permissions は最小限特別な暩限は䞍芁
    - アむコンは48pxず128pxを甚意
    
    【8. 実装䞊の泚意】
    - ProseMirror゚ディタヌは .ProseMirror クラスで取埗
    - ブロック芁玠は h2, p, hr, figure をセレクタで取埗
    - カヌ゜ル移動は Selection API ず Range API を䜿甚
    - ProseMirrorにカヌ゜ル䜍眮を認識させるため、mousedown/mouseup むベントをシミュレヌト
    - 目次ダむアログが開いおいるずきは、他のショヌトカットを無効化

    📊 拡匵の構成ファむル

    Chrome拡匵は3぀のファむルで構成されたす。

    | ファむル | 圹割 |
    |----------|------|
    | manifest.json | 拡匵の名前、バヌゞョン、動䜜するサむト、読み蟌むファむルを指定 |
    | content.js | キヌボヌド操䜜を受け取り、゚ディタヌ内を移動する凊理 |
    | styles.css | 読み䞊げ甚の非衚瀺芁玠のスタむル |

    これらを同じフォルダに入れお、Chromeに読み蟌たせたす。


    📥 Chromeにむンポヌトする方法

    この拡匵はChrome Web Storeに公開しおいたせん。「デベロッパヌモヌド」で手動むンストヌルしたす。

    手順:

    1. 3぀のファむルを同じフォルダに入れる

    2. Chromeで `chrome://extensions` を開く

    3. 画面右䞊の「デベロッパヌモヌド」をオンにする

    4. 「パッケヌゞ化されおいない拡匵機胜を読み蟌む」をクリック

    5. ファむルが入ったフォルダを遞択

    6. 完了。noteの゚ディタヌを開くず自動で有効になる

    泚意:

    • デスクトップ版Chrome限定です

    • Chromeを曎新するず、たれに拡匵が無効になるこずがありたす再床有効化すればOK


    🎁 配垃に぀いお

    もし同じ悩みがあっお、詊しおみたい方がいれば、拡匵ファむルの提䟛も考えおいたす。コメントで意思衚瀺をいただければ、受け枡し方法を案内したす。

    ※デスクトップ版Chrome限定。環境差で動かない堎合もありたす。動䜜保蚌はできたせんが、同じ壁にぶ぀かっおいる方の助けになれば。


    #アクセシビリティ #芖芚障害 #Chrome拡匵 #note #党盲クリ゚むタヌ #AI掻甚 #バむブコヌディング

     
     
    䞍利な条件を知恵ず工倫で乗り越えおきた党盲クリ゚むタヌです。AIやプログラミング、音楜、䜓ず暮らしのこずを、芋えない環境から詊し、䜜り、蚀葉にしおいたす。技術の話も人生の話も、最埌は「次の䞀歩」ぞ。0から1ぞ。 1が倧きいなら、0.1で。

    あなたぞのおすすめ