From e3d52891fb895de797165422026d5423f63fb7cc Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Tue, 3 Feb 2026 19:50:24 +0800 Subject: [PATCH] fix(a11y): add missing aria labels and fix iOS safe insets (#3149) --- .../public/locales/ar/translation.json | 5 ++- .../public/locales/bn/translation.json | 5 ++- .../public/locales/bo/translation.json | 5 ++- .../public/locales/de/translation.json | 5 ++- .../public/locales/el/translation.json | 5 ++- .../public/locales/es/translation.json | 5 ++- .../public/locales/fa/translation.json | 5 ++- .../public/locales/fr/translation.json | 5 ++- .../public/locales/hi/translation.json | 5 ++- .../public/locales/id/translation.json | 5 ++- .../public/locales/it/translation.json | 5 ++- .../public/locales/ja/translation.json | 5 ++- .../public/locales/ko/translation.json | 5 ++- .../public/locales/ms/translation.json | 5 ++- .../public/locales/nl/translation.json | 5 ++- .../public/locales/pl/translation.json | 5 ++- .../public/locales/pt/translation.json | 5 ++- .../public/locales/ru/translation.json | 5 ++- .../public/locales/si/translation.json | 5 ++- .../public/locales/sv/translation.json | 5 ++- .../public/locales/ta/translation.json | 5 ++- .../public/locales/th/translation.json | 5 ++- .../public/locales/tr/translation.json | 5 ++- .../public/locales/uk/translation.json | 5 ++- .../public/locales/vi/translation.json | 5 ++- .../public/locales/zh-CN/translation.json | 5 ++- .../public/locales/zh-TW/translation.json | 5 ++- .../src/app/library/components/BookItem.tsx | 1 + .../src/app/library/components/GroupItem.tsx | 4 ++ apps/readest-app/src/app/library/page.tsx | 2 + apps/readest-app/src/components/Dialog.tsx | 1 + apps/readest-app/src/components/Dropdown.tsx | 1 + .../src/hooks/useSafeAreaInsets.ts | 37 +++++++++++++++++++ 33 files changed, 154 insertions(+), 27 deletions(-) diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index 79db3854..410765c4 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -1054,5 +1054,8 @@ "From Current Page": "من الصفحة الحالية", "Start from where you are currently reading": "البدء من حيث تقرأ حالياً", "From Selection": "من التحديد", - "Speed Reading Mode": "وضع القراءة السريعة" + "Speed Reading Mode": "وضع القراءة السريعة", + "Scroll left": "تمرير لليسار", + "Scroll right": "تمرير لليمين", + "Library Sync Progress": "تقدم تزامن المكتبة" } diff --git a/apps/readest-app/public/locales/bn/translation.json b/apps/readest-app/public/locales/bn/translation.json index 5a90dfa3..b34ca12c 100644 --- a/apps/readest-app/public/locales/bn/translation.json +++ b/apps/readest-app/public/locales/bn/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "বর্তমান পৃষ্ঠা থেকে", "Start from where you are currently reading": "আপনি বর্তমানে যেখানে পড়ছেন সেখান থেকে শুরু করুন", "From Selection": "নির্বাচন থেকে", - "Speed Reading Mode": "দ্রুত পাঠ্য মোড" + "Speed Reading Mode": "দ্রুত পাঠ্য মোড", + "Scroll left": "বামে স্ক্রোল করুন", + "Scroll right": "ডানে স্ক্রোল করুন", + "Library Sync Progress": "লাইব্রেরি সিঙ্ক অগ্রগতি" } diff --git a/apps/readest-app/public/locales/bo/translation.json b/apps/readest-app/public/locales/bo/translation.json index 74c143ce..eeb3b6aa 100644 --- a/apps/readest-app/public/locales/bo/translation.json +++ b/apps/readest-app/public/locales/bo/translation.json @@ -994,5 +994,8 @@ "From Current Page": "ད་ལྟའི་ཤོག་ལྷེ་ནས།", "Start from where you are currently reading": "ད་ལྟ་ཀློག་བཞིན་པའི་གནས་ནས་འགོ་འཛུགས་པ།", "From Selection": "བདམས་པའི་ནང་དོན་ནས།", - "Speed Reading Mode": "མྱུར་ཀློག་རྣམ་པ།" + "Speed Reading Mode": "མྱུར་ཀློག་རྣམ་པ།", + "Scroll left": "གཡོན་ལ་བཤུད་དགོས།", + "Scroll right": "གཡས་ལ་བཤུད་དགོས།", + "Library Sync Progress": "དཔེ་མཛོད་མཉམ་འབྱུང་གི་རིམ་པ།" } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index c920f8ab..29260b11 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "Von der aktuellen Seite", "Start from where you are currently reading": "Dort beginnen, wo Sie gerade lesen", "From Selection": "Von der Auswahl", - "Speed Reading Mode": "Schnelllesemodus" + "Speed Reading Mode": "Schnelllesemodus", + "Scroll left": "Nach links scrollen", + "Scroll right": "Nach rechts scrollen", + "Library Sync Progress": "Bibliotheks-Synchronisierungsfortschritt" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index 66605c53..42d785ba 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "Από την τρέχουσα σελίδα", "Start from where you are currently reading": "Ξεκινήστε από εκεί που διαβάζετε αυτή τη στιγμή", "From Selection": "Από την επιλογή", - "Speed Reading Mode": "Λειτουργία ταχείας ανάγνωσης" + "Speed Reading Mode": "Λειτουργία ταχείας ανάγνωσης", + "Scroll left": "Κύλιση αριστερά", + "Scroll right": "Κύλιση δεξιά", + "Library Sync Progress": "Πρόοδος συγχρονισμού βιβλιοθήκης" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index 48f31be0..c6006152 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -1018,5 +1018,8 @@ "From Current Page": "Desde la página actual", "Start from where you are currently reading": "Empezar desde donde estás leyendo actualmente", "From Selection": "Desde la selección", - "Speed Reading Mode": "Modo de lectura rápida" + "Speed Reading Mode": "Modo de lectura rápida", + "Scroll left": "Desplazar a la izquierda", + "Scroll right": "Desplazar a la derecha", + "Library Sync Progress": "Progreso de sincronización de la biblioteca" } diff --git a/apps/readest-app/public/locales/fa/translation.json b/apps/readest-app/public/locales/fa/translation.json index 5b9b8bba..8e565dbe 100644 --- a/apps/readest-app/public/locales/fa/translation.json +++ b/apps/readest-app/public/locales/fa/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "از صفحه فعلی", "Start from where you are currently reading": "شروع از جایی که در حال مطالعه هستید", "From Selection": "از انتخاب", - "Speed Reading Mode": "حالت مطالعه سریع" + "Speed Reading Mode": "حالت مطالعه سریع", + "Scroll left": "اسکرول به چپ", + "Scroll right": "اسکرول به راست", + "Library Sync Progress": "پیشرفت همگام‌سازی کتابخانه" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 61095ccb..1b797648 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -1018,5 +1018,8 @@ "From Current Page": "Depuis la page actuelle", "Start from where you are currently reading": "Commencer là où vous lisez actuellement", "From Selection": "Depuis la sélection", - "Speed Reading Mode": "Mode lecture rapide" + "Speed Reading Mode": "Mode lecture rapide", + "Scroll left": "Défiler vers la gauche", + "Scroll right": "Défiler vers la droite", + "Library Sync Progress": "Progression de la synchronisation de la bibliothèque" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index 9c419692..6ef93ebf 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "वर्तमान पृष्ठ से", "Start from where you are currently reading": "जहाँ आप अभी पढ़ रहे हैं वहीं से शुरू करें", "From Selection": "चयन से", - "Speed Reading Mode": "त्वरित पठन मोड" + "Speed Reading Mode": "त्वरित पठन मोड", + "Scroll left": "बाएं स्क्रॉल करें", + "Scroll right": "दाएं स्क्रॉल करें", + "Library Sync Progress": "पुस्तकालय सिंक प्रगति" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index 36cdfe3f..15a43adb 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -994,5 +994,8 @@ "From Current Page": "Dari Halaman Saat Ini", "Start from where you are currently reading": "Mulai dari tempat Anda sedang membaca", "From Selection": "Dari Pilihan", - "Speed Reading Mode": "Mode Baca Cepat" + "Speed Reading Mode": "Mode Baca Cepat", + "Scroll left": "Gulir ke kiri", + "Scroll right": "Gulir ke kanan", + "Library Sync Progress": "Kemajuan Sinkronisasi Pustaka" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index ad6ae4ea..4e785a0e 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -1018,5 +1018,8 @@ "From Current Page": "Dalla pagina corrente", "Start from where you are currently reading": "Inizia da dove stai leggendo", "From Selection": "Dalla selezione", - "Speed Reading Mode": "Modalità lettura veloce" + "Speed Reading Mode": "Modalità lettura veloce", + "Scroll left": "Scorri a sinistra", + "Scroll right": "Scorri a destra", + "Library Sync Progress": "Avanzamento sincronizzazione libreria" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index 0f51fb2f..3188b022 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -994,5 +994,8 @@ "From Current Page": "現在のページから", "Start from where you are currently reading": "現在読んでいる場所から開始する", "From Selection": "選択範囲から", - "Speed Reading Mode": "速読モード" + "Speed Reading Mode": "速読モード", + "Scroll left": "左にスクロール", + "Scroll right": "右にスクロール", + "Library Sync Progress": "ライブラリ同期の進捗" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index db032a1d..7f0153b3 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -994,5 +994,8 @@ "From Current Page": "현재 페이지부터", "Start from where you are currently reading": "현재 읽고 있는 위치부터 시작", "From Selection": "선택 범위부터", - "Speed Reading Mode": "속독 모드" + "Speed Reading Mode": "속독 모드", + "Scroll left": "왼쪽으로 스크롤", + "Scroll right": "오른쪽으로 스크롤", + "Library Sync Progress": "라이브러리 동기화 진행 상황" } diff --git a/apps/readest-app/public/locales/ms/translation.json b/apps/readest-app/public/locales/ms/translation.json index d7b08ae6..d8315df1 100644 --- a/apps/readest-app/public/locales/ms/translation.json +++ b/apps/readest-app/public/locales/ms/translation.json @@ -994,5 +994,8 @@ "From Current Page": "Dari Halaman Semasa", "Start from where you are currently reading": "Mula dari tempat anda sedang membaca", "From Selection": "Dari Pilihan", - "Speed Reading Mode": "Mod Bacaan Pantas" + "Speed Reading Mode": "Mod Bacaan Pantas", + "Scroll left": "Tatal ke kiri", + "Scroll right": "Tatal ke kanan", + "Library Sync Progress": "Kemajuan Segerak Perpustakaan" } diff --git a/apps/readest-app/public/locales/nl/translation.json b/apps/readest-app/public/locales/nl/translation.json index 68bd443d..f224ffbe 100644 --- a/apps/readest-app/public/locales/nl/translation.json +++ b/apps/readest-app/public/locales/nl/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "Vanaf huidige pagina", "Start from where you are currently reading": "Begin waar u momenteel leest", "From Selection": "Vanaf selectie", - "Speed Reading Mode": "Snelle leesmodus" + "Speed Reading Mode": "Snelle leesmodus", + "Scroll left": "Naar links scrollen", + "Scroll right": "Naar rechts scrollen", + "Library Sync Progress": "Voortgang bibliotheeksynchronisatie" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index 82720d6f..2a925af6 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -1030,5 +1030,8 @@ "From Current Page": "Od bieżącej strony", "Start from where you are currently reading": "Zacznij od miejsca, w którym aktualnie czytasz", "From Selection": "Z zaznaczenia", - "Speed Reading Mode": "Tryb szybkiego czytania" + "Speed Reading Mode": "Tryb szybkiego czytania", + "Scroll left": "Przewiń w lewo", + "Scroll right": "Przewiń w prawo", + "Library Sync Progress": "Postęp synchronizacji biblioteki" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index 63853b0f..c6ed60e8 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -1018,5 +1018,8 @@ "From Current Page": "Da página atual", "Start from where you are currently reading": "Começar de onde está lendo no momento", "From Selection": "Da seleção", - "Speed Reading Mode": "Modo de leitura rápida" + "Speed Reading Mode": "Modo de leitura rápida", + "Scroll left": "Rolar para a esquerda", + "Scroll right": "Rolar para a direita", + "Library Sync Progress": "Progresso de sincronização da biblioteca" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index 693107d2..f6b37165 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -1030,5 +1030,8 @@ "From Current Page": "С текущей страницы", "Start from where you are currently reading": "Начать с того места, где вы сейчас читаете", "From Selection": "Из выбранного", - "Speed Reading Mode": "Режим быстрого чтения" + "Speed Reading Mode": "Режим быстрого чтения", + "Scroll left": "Прокрутить влево", + "Scroll right": "Прокрутить вправо", + "Library Sync Progress": "Прогресс синхронизации библиотеки" } diff --git a/apps/readest-app/public/locales/si/translation.json b/apps/readest-app/public/locales/si/translation.json index 81db68e1..1a9e7c55 100644 --- a/apps/readest-app/public/locales/si/translation.json +++ b/apps/readest-app/public/locales/si/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "වත්මන් පිටුවේ සිට", "Start from where you are currently reading": "ඔබ දැනට කියවන තැනින් ආරම්භ කරන්න", "From Selection": "තේරීමෙන්", - "Speed Reading Mode": "වේගයෙන් කියවීමේ ක්‍රමය" + "Speed Reading Mode": "වේගයෙන් කියවීමේ ක්‍රමය", + "Scroll left": "වමට අනුචලනය කරන්න", + "Scroll right": "දකුණට අනුචලනය කරන්න", + "Library Sync Progress": "පුස්තකාල සමමුහුර්ත කිරීමේ ප්‍රගතිය" } diff --git a/apps/readest-app/public/locales/sv/translation.json b/apps/readest-app/public/locales/sv/translation.json index 66badc25..aea7fa61 100644 --- a/apps/readest-app/public/locales/sv/translation.json +++ b/apps/readest-app/public/locales/sv/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "Från den aktuella sidan", "Start from where you are currently reading": "Börja där du läser just nu", "From Selection": "Från markeringen", - "Speed Reading Mode": "Snabbläsningsläge" + "Speed Reading Mode": "Snabbläsningsläge", + "Scroll left": "Scrolla åt vänster", + "Scroll right": "Scrolla åt höger", + "Library Sync Progress": "Synkroniseringsframsteg för bibliotek" } diff --git a/apps/readest-app/public/locales/ta/translation.json b/apps/readest-app/public/locales/ta/translation.json index 83c264ff..0fa85239 100644 --- a/apps/readest-app/public/locales/ta/translation.json +++ b/apps/readest-app/public/locales/ta/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "தற்போதைய பக்கத்திலிருந்து", "Start from where you are currently reading": "நீங்கள் தற்போது வாசிக்கும் இடத்திலிருந்து தொடங்கு", "From Selection": "தேர்விலிருந்து", - "Speed Reading Mode": "வேக வாசிப்பு முறை" + "Speed Reading Mode": "வேக வாசிப்பு முறை", + "Scroll left": "இடதுபுறம் உருட்டவும்", + "Scroll right": "வலதுபுறம் உருட்டவும்", + "Library Sync Progress": "நூலக ஒத்திசைவு நிலை" } diff --git a/apps/readest-app/public/locales/th/translation.json b/apps/readest-app/public/locales/th/translation.json index 57ccf9f9..88260c24 100644 --- a/apps/readest-app/public/locales/th/translation.json +++ b/apps/readest-app/public/locales/th/translation.json @@ -994,5 +994,8 @@ "From Current Page": "จากหน้าปัจจุบัน", "Start from where you are currently reading": "เริ่มจากจุดที่คุณกำลังอ่านอยู่ตอนนี้", "From Selection": "จากส่วนที่เลือก", - "Speed Reading Mode": "โหมดการอ่านเร็ว" + "Speed Reading Mode": "โหมดการอ่านเร็ว", + "Scroll left": "เลื่อนไปทางซ้าย", + "Scroll right": "เลื่อนไปทางขวา", + "Library Sync Progress": "ความคืบหน้าการซิงค์ห้องสมุด" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index d62d0074..4ad7aa2b 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -1006,5 +1006,8 @@ "From Current Page": "Mevcut Sayfadan", "Start from where you are currently reading": "Şu anda okuduğunuz yerden başlayın", "From Selection": "Seçimden", - "Speed Reading Mode": "Hızlı Okuma Modu" + "Speed Reading Mode": "Hızlı Okuma Modu", + "Scroll left": "Sola kaydır", + "Scroll right": "Sağa kaydır", + "Library Sync Progress": "Kütüphane Senkronizasyon İlerlemesi" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 361570ed..6dc0eea2 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -1030,5 +1030,8 @@ "From Current Page": "З поточної сторінки", "Start from where you are currently reading": "Почати з того місця, де ви зараз читаєте", "From Selection": "З виділеного", - "Speed Reading Mode": "Режим швидкого читання" + "Speed Reading Mode": "Режим швидкого читання", + "Scroll left": "Прокрутити вліво", + "Scroll right": "Прокрутити вправо", + "Library Sync Progress": "Прогрес синхронізації бібліотеки" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index e453deb9..504cdc79 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -994,5 +994,8 @@ "From Current Page": "Từ trang hiện tại", "Start from where you are currently reading": "Bắt đầu từ nơi bạn hiện đang đọc", "From Selection": "Từ phần đã chọn", - "Speed Reading Mode": "Chế độ đọc nhanh" + "Speed Reading Mode": "Chế độ đọc nhanh", + "Scroll left": "Cuộn sang trái", + "Scroll right": "Cuộn sang phải", + "Library Sync Progress": "Tiến trình đồng bộ hóa thư viện" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index 2712429c..fc67a345 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -994,5 +994,8 @@ "From Current Page": "从当前页", "Start from where you are currently reading": "从当前正在阅读的位置开始", "From Selection": "从选中内容", - "Speed Reading Mode": "快读模式" + "Speed Reading Mode": "快读模式", + "Scroll left": "向左滚动", + "Scroll right": "向右滚动", + "Library Sync Progress": "库同步进度" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index 7a7b8601..668a13cc 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -994,5 +994,8 @@ "From Current Page": "從當前頁", "Start from where you are currently reading": "從當前正在閱讀的位置開始", "From Selection": "從選取內容", - "Speed Reading Mode": "快讀模式" + "Speed Reading Mode": "快讀模式", + "Scroll left": "向左捲動", + "Scroll right": "向右捲動", + "Library Sync Progress": "資料庫同步進度" } diff --git a/apps/readest-app/src/app/library/components/BookItem.tsx b/apps/readest-app/src/app/library/components/BookItem.tsx index 4e249b56..61211744 100644 --- a/apps/readest-app/src/app/library/components/BookItem.tsx +++ b/apps/readest-app/src/app/library/components/BookItem.tsx @@ -160,6 +160,7 @@ const BookItem: React.FC = ({ ) : ( (!book.uploadedAt || (book.uploadedAt && !book.downloadedAt)) && (