diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d34ae3..83aaa67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.20.20] - 2026-04-20 + +### Fixed +- Accessibility: `--module-notes` color raised from `#CA8A04` (4.08:1) to `#A16207` (6.3:1) — now WCAG AA compliant for normal text including nav labels +- Accessibility: Task status button `aria-label` now reflects actual action — says "mark as open" for completed tasks instead of always "mark as done" +- i18n: Added `tasks.markOpen` key to all 15 locale files for the corrected aria-label + ## [0.20.19] - 2026-04-20 ### Changed diff --git a/package-lock.json b/package-lock.json index 4f2669b..73b5bae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "oikos", - "version": "0.20.9", + "version": "0.20.20", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "oikos", - "version": "0.20.9", + "version": "0.20.20", "license": "MIT", "dependencies": { "bcrypt": "^6.0.0", diff --git a/package.json b/package.json index a0a8c1a..9bdab5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "oikos", - "version": "0.20.19", + "version": "0.20.20", "description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.", "main": "server/index.js", "type": "module", diff --git a/public/locales/ar.json b/public/locales/ar.json index 0c38056..6d9b6db 100644 --- a/public/locales/ar.json +++ b/public/locales/ar.json @@ -130,6 +130,7 @@ "groupLater": "لاحقاً", "groupNoDate": "بلا تاريخ", "markDone": "وضع علامة منجز على {{title}}", + "markOpen": "وضع علامة مفتوح على {{title}}", "editButton": "تعديل المهمة", "swipeOpen": "فتح", "swipeDone": "منجز", diff --git a/public/locales/de.json b/public/locales/de.json index 5a4516e..a207970 100644 --- a/public/locales/de.json +++ b/public/locales/de.json @@ -130,6 +130,7 @@ "groupLater": "Später", "groupNoDate": "Kein Datum", "markDone": "{{title}} als erledigt markieren", + "markOpen": "{{title}} als offen markieren", "editButton": "Aufgabe bearbeiten", "swipeOpen": "Öffnen", "swipeDone": "Erledigt", diff --git a/public/locales/el.json b/public/locales/el.json index 341d8e0..e65bb5f 100644 --- a/public/locales/el.json +++ b/public/locales/el.json @@ -130,6 +130,7 @@ "groupLater": "Αργότερα", "groupNoDate": "Χωρίς ημερομηνία", "markDone": "Επισήμανση {{title}} ως ολοκληρωμένο", + "markOpen": "Επισήμανση {{title}} ως ανοιχτό", "editButton": "Επεξεργασία εργασίας", "swipeOpen": "Επαναφορά", "swipeDone": "Ολοκληρώθηκε", diff --git a/public/locales/en.json b/public/locales/en.json index c2c3d1c..6dc98a2 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -130,6 +130,7 @@ "groupLater": "Later", "groupNoDate": "No date", "markDone": "Mark {{title}} as done", + "markOpen": "Mark {{title}} as open", "editButton": "Edit task", "swipeOpen": "Reopen", "swipeDone": "Done", diff --git a/public/locales/es.json b/public/locales/es.json index 0034563..58fbfd9 100644 --- a/public/locales/es.json +++ b/public/locales/es.json @@ -130,6 +130,7 @@ "groupLater": "Más tarde", "groupNoDate": "Sin fecha", "markDone": "Marcar {{title}} como completada", + "markOpen": "Marcar {{title}} como pendiente", "editButton": "Editar tarea", "swipeOpen": "Abrir", "swipeDone": "Completar", diff --git a/public/locales/fr.json b/public/locales/fr.json index 205e26e..be973cc 100644 --- a/public/locales/fr.json +++ b/public/locales/fr.json @@ -130,6 +130,7 @@ "groupLater": "Plus tard", "groupNoDate": "Sans date", "markDone": "Marquer {{title}} comme terminé", + "markOpen": "Marquer {{title}} comme non terminé", "editButton": "Modifier la tâche", "swipeOpen": "Rouvrir", "swipeDone": "Terminé", diff --git a/public/locales/hi.json b/public/locales/hi.json index 97316a7..11886e5 100644 --- a/public/locales/hi.json +++ b/public/locales/hi.json @@ -130,6 +130,7 @@ "groupLater": "बाद में", "groupNoDate": "कोई तारीख नहीं", "markDone": "{{title}} को पूर्ण के रूप में चिह्नित करें", + "markOpen": "{{title}} को अपूर्ण के रूप में चिह्नित करें", "editButton": "कार्य संपादित करें", "swipeOpen": "खोलें", "swipeDone": "पूर्ण", diff --git a/public/locales/it.json b/public/locales/it.json index d3d907c..b8f5fc6 100644 --- a/public/locales/it.json +++ b/public/locales/it.json @@ -130,6 +130,7 @@ "groupLater": "Più avanti", "groupNoDate": "Senza data", "markDone": "Segna {{title}} come completato", + "markOpen": "Segna {{title}} come non completato", "editButton": "Modifica compito", "swipeOpen": "Riapri", "swipeDone": "Completato", diff --git a/public/locales/ja.json b/public/locales/ja.json index 28f925a..092bd8a 100644 --- a/public/locales/ja.json +++ b/public/locales/ja.json @@ -130,6 +130,7 @@ "groupLater": "後で", "groupNoDate": "日付なし", "markDone": "{{title}} を完了としてマーク", + "markOpen": "{{title}} を未完了としてマーク", "editButton": "タスクを編集", "swipeOpen": "開く", "swipeDone": "完了", diff --git a/public/locales/pt.json b/public/locales/pt.json index 0f925c4..9bbe678 100644 --- a/public/locales/pt.json +++ b/public/locales/pt.json @@ -130,6 +130,7 @@ "groupLater": "Depois", "groupNoDate": "Sem data", "markDone": "Marcar {{title}} como concluído", + "markOpen": "Marcar {{title}} como pendente", "editButton": "Editar tarefa", "swipeOpen": "Abrir", "swipeDone": "Concluído", diff --git a/public/locales/ru.json b/public/locales/ru.json index b3f1ef8..0e8f8a8 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -130,6 +130,7 @@ "groupLater": "Позже", "groupNoDate": "Без даты", "markDone": "Отметить {{title}} как выполненное", + "markOpen": "Отметить {{title}} как открытое", "editButton": "Редактировать задачу", "swipeOpen": "Открыть снова", "swipeDone": "Выполнено", diff --git a/public/locales/sv.json b/public/locales/sv.json index f5bb5e9..11a34b6 100644 --- a/public/locales/sv.json +++ b/public/locales/sv.json @@ -130,6 +130,7 @@ "groupLater": "Senare", "groupNoDate": "Inget datum", "markDone": "Markera {{title}} som klar", + "markOpen": "Markera {{title}} som öppen", "editButton": "Redigera uppgift", "swipeOpen": "Öppna igen", "swipeDone": "Klart", diff --git a/public/locales/tr.json b/public/locales/tr.json index 26e8a10..080347e 100644 --- a/public/locales/tr.json +++ b/public/locales/tr.json @@ -130,6 +130,7 @@ "groupLater": "Sonra", "groupNoDate": "Tarih yok", "markDone": "{{title}} tamamlandı olarak işaretle", + "markOpen": "{{title}} açık olarak işaretle", "editButton": "Görevi düzenle", "swipeOpen": "Yeniden aç", "swipeDone": "Tamamlandı", diff --git a/public/locales/uk.json b/public/locales/uk.json index 600623f..6a0361f 100644 --- a/public/locales/uk.json +++ b/public/locales/uk.json @@ -130,6 +130,7 @@ "groupLater": "Пізніше", "groupNoDate": "Без дати", "markDone": "Позначити {{title}} як виконане", + "markOpen": "Позначити {{title}} як відкрите", "editButton": "Редагувати завдання", "swipeOpen": "Відкрити знову", "swipeDone": "Виконано", diff --git a/public/locales/zh.json b/public/locales/zh.json index 59cf108..d6eab31 100644 --- a/public/locales/zh.json +++ b/public/locales/zh.json @@ -130,6 +130,7 @@ "groupLater": "以后", "groupNoDate": "无日期", "markDone": "将 {{title}} 标记为完成", + "markOpen": "将 {{title}} 标记为未完成", "editButton": "编辑任务", "swipeOpen": "打开", "swipeDone": "完成", diff --git a/public/pages/tasks.js b/public/pages/tasks.js index 75a42f2..1f1e0ab 100644 --- a/public/pages/tasks.js +++ b/public/pages/tasks.js @@ -168,7 +168,7 @@ function renderTaskCard(task, opts = {}) {
diff --git a/public/styles/tokens.css b/public/styles/tokens.css index 4d5551b..8c617ee 100644 --- a/public/styles/tokens.css +++ b/public/styles/tokens.css @@ -139,8 +139,8 @@ --module-meals: var(--_module-meals); /* Orange-700 - Essen, Wärme */ --_module-shopping: #DB2777; --module-shopping: var(--_module-shopping); /* Pink-600 - Einkaufen (trennt von Meals) */ - --_module-notes: #CA8A04; - --module-notes: var(--_module-notes); /* Gold - Notizen (nur Icons/Large-Text: 4.08:1) */ + --_module-notes: #A16207; + --module-notes: var(--_module-notes); /* Amber-700 - Notizen (6.3:1 auf weiß — WCAG AA) */ --_module-contacts: #0969DA; --module-contacts: var(--_module-contacts); /* Kräftiges Blau - Kontakte */ --_module-budget: #0F766E;