From 3c4f0c5858279d24e8630e46d023d9b0b85d64ce Mon Sep 17 00:00:00 2001 From: Zefir Kirilov Date: Mon, 16 Mar 2026 09:00:48 +0200 Subject: [PATCH 1/5] improved routing accessibility --- src/components/AppRoot.ts | 12 ++++++++++++ src/components/pages/Page.ts | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/components/AppRoot.ts b/src/components/AppRoot.ts index c60c622..9cf7b17 100644 --- a/src/components/AppRoot.ts +++ b/src/components/AppRoot.ts @@ -66,11 +66,23 @@ export class AppRoot extends Component { } private setupRouter() { + let initial = true; this.router .on("/", () => { this.home = true; this.page = new HomePage(this.api, this.services); }) + .on("*", () => { + this.router.navigate("/"); + }) + .hooks({ + after: () => { + if (!initial) { + this.page.focus(); + } + initial = false; + }, + }) .resolve(); } diff --git a/src/components/pages/Page.ts b/src/components/pages/Page.ts index 4e593ee..b3002bd 100644 --- a/src/components/pages/Page.ts +++ b/src/components/pages/Page.ts @@ -1,4 +1,15 @@ import { Component } from "../Component"; export abstract class Page extends Component { + public override connectedCallback() { + super.connectedCallback(); + this.tabIndex = -1; + this.classList.add("focus:outline-none"); + } + + public focus() { + this.updateComplete.then(() => { + super.focus(); + }); + } } From 7ca373556c55ff926dfda1cb66afdc5c02260a85 Mon Sep 17 00:00:00 2001 From: Zefir Kirilov Date: Mon, 16 Mar 2026 10:07:25 +0200 Subject: [PATCH 2/5] improved component description accessibility --- src/components/ServiceRow.ts | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/components/ServiceRow.ts b/src/components/ServiceRow.ts index 08c032f..72c2218 100644 --- a/src/components/ServiceRow.ts +++ b/src/components/ServiceRow.ts @@ -210,19 +210,20 @@ export class ServiceRow extends Component { ${this.service.description === null ? nothing : html`
- + + + +
${unsafeHTML( ServiceRow.MD.render(this.service.description), From e8a76f3d22fe0c5311ff23e594303537aae46dda Mon Sep 17 00:00:00 2001 From: Zefir Kirilov Date: Mon, 16 Mar 2026 10:15:28 +0200 Subject: [PATCH 3/5] hide irrelevant visual info from SR in the day overview --- src/components/ServiceDayTooltip.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/components/ServiceDayTooltip.ts b/src/components/ServiceDayTooltip.ts index 8206884..3374a47 100644 --- a/src/components/ServiceDayTooltip.ts +++ b/src/components/ServiceDayTooltip.ts @@ -76,7 +76,7 @@ export class ServiceDayTooltip extends Component {
- +
${this.notices.length > 0 @@ -124,13 +125,12 @@ export class ServiceDayTooltip extends Component { >${style.label}
${n - .name} + > + ${n.name} + +

${n.ended === null || From 935c18717a240ffc7dd8e8a7c0e313fe817ad687 Mon Sep 17 00:00:00 2001 From: Zefir Kirilov Date: Mon, 16 Mar 2026 10:26:24 +0200 Subject: [PATCH 4/5] render nothing if service is not yet resolved --- src/components/StatusOverview.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/StatusOverview.ts b/src/components/StatusOverview.ts index cf97a4a..38d2684 100644 --- a/src/components/StatusOverview.ts +++ b/src/components/StatusOverview.ts @@ -1,4 +1,4 @@ -import { html } from "lit"; +import { html, nothing } from "lit"; import { customElement, property, state } from "lit/decorators.js"; import { Component } from "./Component"; import { MainStatus } from "../models/MainStatus"; @@ -169,9 +169,13 @@ export class StatusOverview extends Component { const status = StatusOverview.parseMainStatus(this.mainStatus); const style = StatusOverview.STYLES[status]; const message = typeof style.message === "function" - ? (this.resolvedService ? style.message(this.resolvedService) : "") + ? (this.resolvedService ? style.message(this.resolvedService) : null) : style.message; + if (message === null) { + return nothing; + } + return html`

From fafce682b729a3169dac8aa6a1432ce464f7483c Mon Sep 17 00:00:00 2001 From: Zefir Kirilov Date: Mon, 16 Mar 2026 10:28:19 +0200 Subject: [PATCH 5/5] =?UTF-8?q?don't=20show=20notice=20as=20=E2=80=98resol?= =?UTF-8?q?ved=E2=80=99=20if=20its=20end=20is=20in=20the=20future?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ServiceDayTooltip.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/ServiceDayTooltip.ts b/src/components/ServiceDayTooltip.ts index 3374a47..f2b6c39 100644 --- a/src/components/ServiceDayTooltip.ts +++ b/src/components/ServiceDayTooltip.ts @@ -134,11 +134,13 @@ export class ServiceDayTooltip extends Component {

${n.ended === null || - n.started.getTime() > now.getTime() + n.started.getTime() > now.getTime() || + n.ended.getTime() > now.getTime() ? ServiceDayTooltip.STATUS_NAMES[n.status] : html` - Resolved after + Resolved after `}

`;