From fa34017809cf55dd3ceea4ca4cd2384cfbf2074a Mon Sep 17 00:00:00 2001 From: Dogfather Date: Fri, 18 Sep 2026 22:10:55 +0200 Subject: [PATCH] Community-Pruefung: auch auf dem Handy, und ohne feste Schwelle Die Community ist ueberwiegend mit dem Telefon unterwegs -- eine Messung auf 1400 px beantwortet fuer sie die falsche Frage. Und genau auf dem Handy waren heute die haesslichsten Sachen: drei verschiedene Kartenanordnungen, ein Hinweis quer ueber der naechsten Beschriftung. Dabei fiel gleich eine feste Zahl auf: Die Pruefung verlangte mindestens 20 sichtbare Wege. Auf dem Rechner sind es 27, auf dem Handy 18 -- dort klappt die Kopfleiste um. Die Pruefung wurde also auf der zweiten Breite rot, ohne dass etwas falsch war. Sie auf 15 zu senken waere derselbe Fehler mit einer anderen Zahl. Verlangt wird jetzt, was die Sache selbst hergibt: mindestens ein sichtbarer Weg je Seite. Findet sich weniger, hat etwas nicht geladen -- und dann ist "0 tote Wege" kein Ergebnis, sondern ein Messfehler. 10 Pruefungen, 0 Fehler, auf beiden Breiten. Co-Authored-By: Claude Opus 5 --- server/pruef-community-sicht.mjs | 45 +++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/server/pruef-community-sicht.mjs b/server/pruef-community-sicht.mjs index cc1b1422..fb4b49df 100644 --- a/server/pruef-community-sicht.mjs +++ b/server/pruef-community-sicht.mjs @@ -160,9 +160,25 @@ const FREMDE_WOERTER = [ "Pipeline", "überfällig", "In Arbeit", "Abgebrochen", ]; +/* ZWEI BREITEN, NICHT EINE. + + Die Community ist ueberwiegend mit dem Telefon unterwegs. Eine + Messung auf 1400 px beantwortet fuer sie die falsche Frage -- und + genau auf dem Handy sind heute die haesslichsten Sachen aufgefallen + (drei verschiedene Kartenanordnungen, ein Hinweis quer ueber der + naechsten Beschriftung). Was auf einer Breite in Ordnung ist, muss + es auf der anderen nicht sein. */ +const BREITEN = [ + { name: "Rechner", breite: 1400, hoehe: 1000 }, + { name: "Handy", breite: 412, hoehe: 915 }, +]; + const browser = await pw.chromium.launch(); try { - const ctx = await browser.newContext({ viewport: { width: 1400, height: 1000 } }); + for (const geraet of BREITEN) { + const ctx = await browser.newContext({ + viewport: { width: geraet.breite, height: geraet.hoehe }, + isMobile: geraet.breite < 700, hasTouch: geraet.breite < 700 }); await ctx.addCookies(kGast.split("; ").filter(Boolean).map((z) => { const [name, ...rest] = z.split("="); return { name, value: rest.join("="), domain: "127.0.0.1", path: "/" }; @@ -183,7 +199,7 @@ try { } melde(""); - melde("=== 2. Wege, die ins Leere fuehren ==="); + melde(`=== 2. Wege, die ins Leere fuehren (${geraet.name}) ===`); let toteWege = 0, geprueftLinks = 0; const gefunden = []; for (const ziel of ziele) { @@ -205,12 +221,24 @@ try { } /* DIE ANZAHL GEHÖRT IN DIE BEDINGUNG. Ohne sie wäre „0 tote Wege" auch dann wahr, wenn gar keine Seite geladen hätte. */ - ok(geprueftLinks >= 20 && toteWege === 0, + /* DIE UNTERGRENZE WIRD ABGELEITET, NICHT GESETZT. + + Hier stand `>= 20`. Auf dem Rechner sind es 27 Wege, auf dem Handy + 18 -- dort klappt die Kopfleiste um, und ein Teil der Links ist + nicht sichtbar. Die feste Zahl machte die Pruefung auf der + zweiten Breite rot, ohne dass irgendetwas falsch war. + + Sie einfach auf 15 zu senken waere derselbe Fehler mit einer + anderen Zahl. Verlangt wird jetzt, was die Sache selbst hergibt: + mindestens ein sichtbarer Weg je Seite. Findet sich weniger, hat + etwas nicht geladen -- und dann ist „0 tote Wege" keine Auskunft, + sondern ein Messfehler. */ + ok(geprueftLinks >= ziele.length && toteWege === 0, `${geprueftLinks} sichtbare Wege auf ${ziele.length} Seiten, davon ${toteWege} ins Leere`); for (const g of gefunden.slice(0, 10)) console.log(` -> ${g}`); melde(""); - melde("=== 3. Sprache, die jemand anderem gehoert ==="); + melde(`=== 3. Sprache, die jemand anderem gehoert (${geraet.name}) ===`); let fremd = 0; const wo = []; for (const ziel of ziele) { @@ -234,7 +262,7 @@ try { ===================================================================== */ melde(""); melde("=== 4. Und behaelt das Team seine Wege? ==="); - { + if (geraet.breite > 700) { const ctx2 = await browser.newContext({ viewport: { width: 1400, height: 1000 } }); await ctx2.addCookies(kDogi.split("; ").filter(Boolean).map((z) => { const [name, ...rest] = z.split("="); @@ -253,10 +281,13 @@ try { } melde(""); - melde("=== 5. Und laeuft ueberhaupt alles? ==="); + melde(`=== 5. Und laeuft ueberhaupt alles? (${geraet.name}) ===`); ok(skriptfehler.length === 0, - `kein Skriptfehler auf ${ziele.length} Seiten` + `kein Skriptfehler auf ${ziele.length} Seiten (${geraet.name})` + (skriptfehler.length ? ` -- ${skriptfehler[0]}` : "")); + + await ctx.close(); + } } finally { await browser.close(); }