Bayangin kamu udah excited banget nyobain fitur vertical tabs terbaru di Firefox. Layout makin lega, estetik, dan multitasking jadi lebih enak. Tapi temanmu yang tunanetra coba navigasi pakai screen reader. Hasilnya? Kacau. Focus loncat-loncat, label tab nggak kebaca, dan tombol close tab tiba-tiba hilang dari jangkauan keyboard.

Ini bukan skenario langka. Fitur vertical tabs yang makin populer di browser modern (Firefox, Edge, Brave, Vivaldi) ternyata menyimpan masalah aksesibilitas yang serius. Artikel ini bakal ngebongkar celah-celah itu, ngasih workaround yang bisa kamu pakai sekarang, plus panduan lengkap cara lapor bug ke Mozilla biar makin banyak developer yang peduli.

Jawaban Singkat / Key Takeaways

Vertical tabs pada Firefox dan browser lain punya tiga celah aksesibilitas utama: focus trap yang bikin pengguna keyboard terjebak di sidebar, ARIA label yang hilang sehingga screen reader tidak bisa mengumumkan judul tab atau state-nya, dan shortcut keyboard yang tidak konsisten antar browser. Audit mandiri pakai NVDA/VoiceOver plus tabIndex inspection bisa mendeteksi masalah ini dalam 10 menit. Sambil menunggu perbaikan resmi, kamu bisa pakai workaround CSS dan userChrome.js, lalu laporkan bug ke Bugzilla Mozilla dengan template yang sudah disediakan.

Kenapa Vertical Tabs Jadi Masalah Serius untuk Aksesibilitas?

Vertical tabs memang kelihatan revolusioner buat pengguna awas. Tapi buat pengguna screen reader atau keyboard-only, fitur ini sering jadi mimpi buruk. Mari kita bongkar tiga masalah paling kritis yang gw temuin saat audit aksesibilitas browser dengan vertical tabs aktif.

Audit aksesibilitas vertical tabs dengan screen reader dan keyboard navigation di browser
Vertical tabs: rapi untuk pengguna visual, tapi penuh jebakan untuk pengguna assistive tech

Masalah #1: Focus Trap di Sidebar Vertical Tabs

Ini yang paling sering bikin frustrasi. Begitu fokus keyboard masuk ke sidebar vertical tabs, pengguna nggak bisa keluar tanpa trik khusus. Tombol F6 atau Ctrl+L yang biasanya jadi “pintu darurat” kadang nggak berfungsi karena event handler sidebar menangkap semua keypress.

Di Firefox versi 126 ke atas, focus trap terjadi saat sidebar dalam keadaan collapsed-expanded. Begitu kamu trigger sidebar pakai Ctrl+Shift+Y (default Firefox), fokus langsung nyangkut di dalam panel tab dan tombol Esc nggak selalu mengembalikan fokus ke konten utama. Ini melanggar WCAG 2.4.3 Focus Order secara eksplisit.

Masalah #2: ARIA Labels yang Hilang atau Nggak Konsisten

Screen reader seperti NVDA dan VoiceOver bergantung pada ARIA attributes untuk mengumumkan elemen UI. Masalahnya, implementasi vertical tabs di Firefox punya gap label yang cukup parah:

  • Tab yang muted atau pinned tidak punya aria-label yang membedakan state-nya
  • Tombol close tab (x) sering cuma berupa ikon SVG tanpa aria-label="Close tab"
  • Group label seperti “pinned tabs” dan “open tabs” tidak terdefinisi secara semantik
  • Tab yang sedang dimuat (loading state) tidak diumumkan oleh screen reader

Akibatnya, pengguna screen reader cuma dengar “tab, tab, tab” tanpa informasi konteks yang berguna. Bayangin kamu punya 40 tab terbuka, semua cuma dibacakan sebagai “tab” tanpa judul halaman. Itu nightmare navigasi.

Focus trap dan navigasi keyboard pada vertical tabs browser Firefox untuk pengguna screen reader
Focus trap: pengguna keyboard terjebak di sidebar tanpa pintu keluar yang jelas

Masalah #3: Shortcut Keyboard yang Nggak Standar

Ini masalah fragmentasi. Setiap browser punya shortcut beda buat navigasi vertical tabs:

  • Firefox: Ctrl+Shift+Y (toggle sidebar), Ctrl+Tab (switch tab)
  • Edge: Ctrl+Shift+, (toggle), Ctrl+Shift+Space (switch)
  • Brave: F8 (toggle sidebar), Ctrl+Shift+[ / ] (switch)
  • Vivaldi: F4 (toggle panel), Ctrl+F6 (switch focus)

Buat pengguna dengan motor impairment yang mengandalkan muscle memory, inkonsistensi ini bencana. Mereka harus belajar ulang shortcut tiap ganti browser. Standar WAI-ARIA Authoring Practices untuk tab pattern tidak diadopsi secara seragam.

Audit Mandiri: 5 Langkah Uji Vertical Tabs Pakai Screen Reader

Kamu nggak perlu jadi a11y expert. Pakai checklist ini buat audit browser kamu sendiri. Siapkan NVDA (Windows) atau VoiceOver (macOS), dan siapkan minimal 10 tab terbuka dengan berbagai konten (video, form, artikel panjang).

  1. Uji Focus Order. Buka sidebar vertical tabs, tekan Tab perlahan. Catat setiap lompatan fokus. Apakah ada elemen yang terlewat? Apakah fokus loncat ke luar sidebar tanpa sengaja? Apakah Esc mengembalikan fokus ke konten utama?
  2. Uji ARIA Announcements. Aktifkan NVDA/VoiceOver. Navigasi antar tab pakai arrow keys. Apakah screen reader mengumumkan: judul halaman, status loading, muted state, dan posisi tab (misal “tab 4 of 12”)?
  3. Uji Close & Reorder. Coba tutup tab pakai Ctrl+W. Apakah fokus jatuh ke tab yang tepat setelahnya? Coba drag-reorder tab dengan keyboard (Shift+F10 lalu “Move Tab”). Apakah screen reader mengonfirmasi perubahan posisi?
  4. Uji Group Navigation. Apakah ada shortcut buat lompat antar grup? Pinned tabs vs regular tabs vs container tabs (Firefox Multi-Account Containers). Apakah grup ini terdefinisi secara semantik?
  5. Uji Notification. Buka tab yang mengirim web notification (misal Slack, WhatsApp Web). Apakah screen reader mengumumkan notifikasi meskipun tab tidak aktif? Apakah indikator visual (dot biru) punya aria-label?
Screen reader NVDA dan VoiceOver untuk testing aksesibilitas vertical tabs browser
Testing dengan screen reader: tutup mata, coba navigasi, rasakan sendiri gap yang ada

Untuk pemahaman dasar aksesibilitas web yang lebih lengkap, baca dulu: Panduan Lengkap Accessibility (Aksesibilitas) Untuk Web Developer. Kalau kamu juga sering generate UI pakai AI, wajib baca: AI Bikin UI Cantik, Tapi Aksesibilitasnya Gagal? Ini Solusinya.

Workaround Sementara Sambil Nunggu Perbaikan Resmi

Sambil nunggu Mozilla dan vendor browser lain nge-fix bug ini, ada beberapa trik yang bisa kamu pakai sekarang. Beberapa workaround ini memanfaatkan userChrome.css dan userChrome.js di Firefox, atau custom CSS injection di browser Chromium-based.

Workaround #1: Tambahkan aria-label via userChrome.js

Kamu bisa inject ARIA labels tambahan ke elemen tab yang hilang. Script ini menelusuri semua tab di sidebar lalu menambahkan aria-label yang lebih deskriptif berdasarkan judul halaman:

// userChrome.js - Firefox Vertical Tabs ARIA fix
(function() {
  const sidebar = document.querySelector('#sidebar-box');
  if (!sidebar) return;
  
  const observer = new MutationObserver(() => {
    const tabs = sidebar.querySelectorAll('.tabbrowser-tab');
    tabs.forEach((tab, i) => {
      const label = tab.getAttribute('label');
      if (label && !tab.getAttribute('aria-label')) {
        tab.setAttribute('aria-label', `${label} - Tab ${i + 1} dari ${tabs.length}`);
        // Tandai state muted
        if (tab.hasAttribute('muted')) {
          tab.setAttribute('aria-label', tab.getAttribute('aria-label') + ' - Dimatikan');
        }
      }
    });
  });
  
  observer.observe(sidebar, { childList: true, subtree: true, attributes: true });
})();

Workaround #2: Force focus escape dengan keyboard shortcut

Kalau kamu terjebak di sidebar, kombinasi Ctrl+L (focus address bar) lalu F6 dua kali biasanya bisa ngeluarin fokus. Ini bukan solusi ideal, tapi bisa jadi penyelamat saat presentasi atau meeting.

Workaround #3: Disable animation & transition di sidebar

Animasi expand/collapse sidebar sering bikin screen reader kehilangan konteks. Tambahkan ini ke userChrome.css:

/* userChrome.css - disable sidebar animations */
#sidebar-box,
#sidebar-box * {
  transition: none !important;
  animation: none !important;
}

/* Pastikan focus outline selalu terlihat di sidebar */
#sidebar-box *:focus-visible {
  outline: 3px solid #0060df !important;
  outline-offset: 2px !important;
}

Cara Lapor Bug Aksesibilitas ke Mozilla (Panduan Lengkap)

Ini bagian paling penting dari artikel ini. Banyak developer cuma ngeluh di Twitter atau forum tanpa pernah lapor resmi. Padahal, bug report yang bagus bisa bikin isu kamu diprioritaskan. Mozilla punya proses yang cukup rapi. Ikuti langkah-langkah ini.

Step 1: Siapkan Environment Detail

Sebelum lapor, catat informasi ini. Bug report tanpa detail environment biasanya langsung ditutup:

  • Versi Firefox (buka about:support, salin “Version” dan “Build ID”)
  • Sistem operasi dan versinya (Windows 11 23H2 / macOS 15.2 / Ubuntu 24.04)
  • Screen reader yang dipakai (NVDA 2024.4 / VoiceOver macOS / JAWS 2025)
  • Apakah issue terjadi di safe mode? (Menu > Help > Troubleshoot Mode)
  • Apakah issue terjadi di Nightly build terbaru?

Step 2: Buat Akun Bugzilla

Buka bugzilla.mozilla.org, daftar akun. Verifikasi email. Ini portal resmi semua bug Firefox. Jangan lapor di GitHub atau Reddit, karena Mozilla engineer nggak monitor itu buat bug tracking.

Step 3: Tulis Bug Report yang Baik

Gunakan template berikut. Salin dan isi sesuai hasil audit kamu:

**Component:** Firefox :: Sidebar
**Type:** defect
**Severity:** S3 (normal) — naikkan ke S2 kalau focus trap total

**Title (ringkas):** Vertical tabs sidebar: [nama isu spesifik]

**Steps to reproduce:**
1. Enable vertical tabs via about:config (sidebar.revamp = true, sidebar.verticalTabs = true)
2. Open 10+ tabs with various content
3. Launch NVDA / VoiceOver
4. [Langkah detail yang memicu bug]

**Actual results:**
[Jelaskan apa yang terjadi. Sertakan: apa yang diumumkan screen reader, di mana fokus terjebak, elemen mana yang tidak terlabeli]

**Expected results:**
[Jelaskan perilaku yang seharusnya sesuai WCAG/WAI-ARIA. Contoh: "Screen reader should announce tab title and position when focused"]

**WCAG references:**
[Jika relevan: WCAG 2.4.3 (Focus Order), 4.1.2 (Name, Role, Value), 2.4.7 (Focus Visible)]

**Regression:** [Ya/Tidak. Apakah ini berfungsi di versi sebelumnya?]
**Reproducible:** [Selalu/Terkadang/Hanya dengan kondisi tertentu]

Step 4: Lampirkan Bukti

Bug report tanpa bukti jarang ditindaklanjuti. Lampirkan:

  • Screenshot dengan focus indicator yang terlihat
  • Screen recording (pakai ShareX di Windows atau Cmd+Shift+5 di macOS) yang menunjukkan screen reader speech viewer
  • about:support dump (copy as text, lampirkan)

Setelah submit, bug kamu akan masuk ke komponen Firefox :: Sidebar. Mozilla engineer biasanya merespon dalam 1-7 hari kerja. Kalau 2 minggu nggak ada respon, kamu bisa needinfo? ke triage owner komponen tersebut.

Panduan bug report Mozilla Firefox untuk isu aksesibilitas vertical tabs dan screen reader
Bug report yang baik: spesifik, ada bukti, dan referensi WCAG

Tools Audit Aksesibilitas yang Wajib Kamu Punya

Selain testing manual, beberapa tools ini bakal ngebantu kamu mendeteksi masalah lebih cepat:

  • axe DevTools (gratis, extension Firefox/Chrome): audit instan ARIA dan semantic HTML. Deteksi ~57% isu otomatis
  • WAVE Evaluation Tool: visualisasi isu aksesibilitas dengan overlay langsung di halaman (termasuk halaman internal browser kalau diaktifkan via remote debugging)
  • Accessibility Inspector (built-in Firefox DevTools): Tab “Accessibility” di DevTools Firefox sangat powerful untuk memeriksa accessibility tree dan ARIA properties
  • NVDA Speech Viewer: fitur bawaan NVDA yang menampilkan log semua ucapan screen reader. Sangat berguna buat dokumentasi bug
  • WebAIM Contrast Checker: validasi kontras warna UI browser (terutama teks di sidebar dengan tema gelap/terang)

Statistik dari WebAIM Million 2025 menunjukkan 95.9% homepage masih punya WCAG failure. Bayangin kalau browser-nya sendiri juga punya isu aksesibilitas. Ini lapisan masalah yang numpuk: aplikasi web yang tidak aksesibel dibuka di browser yang juga punya gap aksesibilitas.

Kesimpulan: Aksesibilitas Browser Adalah Fondasi

Kita sering fokus bikin website yang WCAG-compliant, tapi lupa bahwa browser tempat website itu dibuka juga harus aksesibel. Vertical tabs adalah fitur yang keren secara UX, tapi implementasinya saat ini masih menyisakan banyak lubang untuk pengguna assistive tech.

Mulai dari sekarang: audit browser kamu sendiri pakai checklist di atas. Kalau nemu gap, jangan cuma ngeluh. Lapor resmi ke Bugzilla. Makin banyak laporan berkualitas yang masuk, makin besar pressure ke vendor browser buat prioritasin aksesibilitas.

Aksesibilitas itu perjuangan kolektif. Bukan cuma urusan developer web, tapi juga developer browser, pembuat standar W3C, dan kita sebagai pengguna yang peduli. Selamat mengaudit, dan jangan lupa share hasilnya ke komunitas!

FAQ: Audit Aksesibilitas Vertical Tabs

Q: Apakah semua browser dengan vertical tabs punya masalah aksesibilitas yang sama?

A: Tidak persis sama, tapi polanya mirip. Firefox dan Edge punya isu focus trap paling parah. Brave dan Vivaldi lebih baik dalam hal keyboard navigation, tapi ARIA labels mereka juga tidak lengkap. Browser berbasis Chromium umumnya mewarisi struktur accessibility tree yang sama, jadi bug ARIA biasanya cross-browser. Firefox dengan Gecko engine punya accessibility tree yang berbeda, sehingga bug-nya lebih spesifik.

Q: Gimana cara tercepat cek apakah vertical tabs di browserku aksesibel tanpa install tools tambahan?

A: Buka DevTools Firefox (F12), pergi ke tab Accessibility. Kalau belum aktif, klik “Turn On Accessibility Features”. Lalu inspect elemen sidebar dengan picker tool. Lihat Name, Role, dan States dari setiap tab. Kalau Name kosong atau Role bukan “tab”, itu indikator masalah. Alternatif cepat: tutup mata, pakai Tab dan arrow keys, coba buka-tutup 3 tab berbeda. Kalau kamu bingung arah, pengguna screen reader jauh lebih bingung.

Q: Apakah workaround userChrome.js aman dipakai? Apakah melanggar terms of service Firefox?

A: userChrome.css dan userChrome.js adalah fitur resmi Firefox yang didokumentasikan di MDN. Tidak melanggar ToS. Tapi perlu dicatat: script ini berjalan di konteks browser chrome (privileged), jadi pastikan kamu cuma pakai script dari sumber terpercaya. Setiap update Firefox besar bisa break kompatibilitas userChrome.js. Ini workaround sementara, bukan solusi permanen.

Q: Gimana cara follow-up kalau bug yang aku laporkan di Bugzilla nggak dapat respon?

A: Setelah 14 hari tanpa respon, tambahkan komentar dengan tag needinfo? ke komponen triage owner. Kamu bisa lihat siapa triage owner di bagian “People” pada halaman bug. Kalau tetap tidak ada respon setelah 30 hari, eskalasi ke Matrix room #accessibility:mozilla.org atau ke milis Mozilla Accessibility mailing list. Sebutkan bug ID kamu dengan sopan. Engineer Mozilla umumnya responsif terhadap isu aksesibilitas.

About the Author

Dzul Qurnain

Suka nonton Anime, ngoding dan bagi-bagi tips kalau tahu.. Oh iya, suka baca ( tapi yang menarik menurutku aja)... Praktisi WordPress, web development, SEO, dan server administration yang membagikan tutorial teknis dan catatan implementasi nyata.

View All Articles