Επισκόπηση
Μια επέκταση που σου επιτρέπει να πλοηγείσαι σε οποιαδήποτε σελίδα χωρίς ποντίκι: πάτησε τον συνδυασμό ενεργοποίησης (προεπιλογή 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
- Συνδυαστική δύο σετ με UI βασισμένο σε badges
- Ανάλυση ορατότητας βάσει υπολογισμένων στυλ, με προσήλωση στις επιδόσεις
- Διπλό build Vite και ζωντανή διαμόρφωση μέσω storage
Αποτέλεσμα
Μια ολοκληρωμένη επέκταση MV3· το σύστημα badges την έκανε άμεσα χρησιμοποιήσιμη σε πραγματικές σελίδες.