diff --git a/public/admin.html b/public/admin.html index 37f6b44..a24d6a3 100644 --- a/public/admin.html +++ b/public/admin.html @@ -75,8 +75,12 @@ Your public link diff --git a/public/css/home.css b/public/css/home.css index e3411bb..4fe5a44 100644 --- a/public/css/home.css +++ b/public/css/home.css @@ -2040,5 +2040,8 @@ } } - +*:focus-visible { + outline: 2px solid #a855f7 !important; + outline-offset: 2px; +} diff --git a/public/css/style.css b/public/css/style.css index 9feb664..8b6b22a 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -842,3 +842,17 @@ input, textarea, select { transition:.2s; } +/* ─── Focus Indicator for Keyboard Navigation ─── */ +*:focus-visible { + outline: 2px solid #a855f7; + outline-offset: 2px; +} + +button:focus-visible, +a:focus-visible, +input:focus-visible, +textarea:focus-visible, +select:focus-visible { + outline: 2px solid #a855f7; + outline-offset: 2px; +} \ No newline at end of file diff --git a/public/js/admin.js b/public/js/admin.js index f2ac341..3b26986 100644 --- a/public/js/admin.js +++ b/public/js/admin.js @@ -248,7 +248,9 @@ return; } - list.innerHTML = categories.map(cat => ` + list.innerHTML = categories + .map( + (cat) => `
@@ -258,20 +260,20 @@
- ${cat.icon || '📁'} + ${cat.icon || "📁"}
${escapeHtml(cat.name)}
${cat.link_count || 0} links
- -
- `).join(''); + `, + ) + .join(""); // Add event listeners using event delegation list.querySelectorAll('[data-action="edit"]').forEach(btn => { diff --git a/public/js/app.js b/public/js/app.js index 4e56d47..01ef5be 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -276,6 +276,7 @@ btn.rel = 'noopener noreferrer'; btn.className = 'social-icon-btn'; btn.title = platform.charAt(0).toUpperCase() + platform.slice(1); + btn.setAttribute("aria-label", `Visit our ${platform}`); btn.innerHTML = SOCIAL_ICONS[platform]; socialsRow.appendChild(btn); });