KXκωνσταντίνος.χαφής
Επεκτάσεις & ΕργαλείαΣυντηρείται2024

KeyboardNavigator

TypeScriptChrome Extension MV3Vite

Επισκόπηση

Μια επέκταση που σου επιτρέπει να πλοηγείσαι σε οποιαδήποτε σελίδα χωρίς ποντίκι: πάτησε τον συνδυασμό ενεργοποίησης (προεπιλογή Ctrl+Space) και κάθε προσβάσιμο στοιχείο επισημαίνεται με έναν σύντομο κωδικό που μπορείς να πληκτρολογήσεις για να μεταβείς απευθείας σε αυτό.

Τι έφτιαξα

Η μηχανή συνδυασμών είναι σύστημα δύο σετ: διάλεξε δύο σύνολα χαρακτήρων (π.χ. A–Z × 0–9) και οι συνδυασμοί είναι set1 × set2 × (set1+set2+1) — 360 συνδυασμοί για ζεύξη 6×5, όλοι συνάγονται διαβάζοντας το badge. Το content script διατηρεί κατάσταση chord ({0: key, 1: key, pressed}) και εισάγει δυναμικά CSS badges.

Το ενδιαφέρον κομμάτι μηχανικής είναι η ανίχνευση ορατότητας: ένα φίλτρο FocusableElements ελέγχει tabIndex, κατάσταση απενεργοποίησης, όρια viewport και ορατότητα προγόνων, και ένας ανιχνευτής InvisibleElements διαβάζει τα υπολογισμένα στυλ (display:none, visibility:hidden, opacity ≤ 0,1) με υλοποίηση βασισμένη σε Set — ώστε η επέκταση να επισημαίνει ό,τι βλέπεται πραγματικά στην οθόνη, όχι κάθε κόμβο DOM.

Το έργο χρησιμοποιεί Vite με δύο ξεχωριστά builds (content script και popup), διαμόρφωση μέσω storage με ζωντανές ενημερώσεις μέσω chrome.storage.onChanged, και UI popup με recorder συντομεύσεων και έλεγχο θέματος.

Τεχνικά highlights

Αποτέλεσμα

Μια ολοκληρωμένη επέκταση MV3· το σύστημα badges την έκανε άμεσα χρησιμοποιήσιμη σε πραγματικές σελίδες.