keyboard-a11y-tester

Projekte, die den nachfolgenden Best Practices folgen, können sich freiwillig selbst zertifizieren und zeigen, dass sie einen Core-Infrastruktur-Initiative-/OpenSSF-Badge erhalten haben.

Es gibt keine Auswahl an Praktiken, die garantieren können, dass Software niemals Fehler oder Schwachstellen hat. Selbst formale Methoden können fehlschlagen, wenn die Spezifikationen oder Annahmen falsch sind. Auch gibt es keine Auswahl an Praktiken, die garantieren können, dass ein Projekt eine gesunde und gut funktionierende Entwicklungsgemeinschaft erhalten wird. Allerdings können Best Practices dabei helfen, die Ergebnisse von Projekten zu verbessern. Zum Beispiel ermöglichen einige Praktiken die Mehrpersonen-Überprüfung vor der Freigabe, die sowohl helfen können ansonsten schwer zu findende technische Schwachstellen zu finden und gleichzeitig dazu beitragen Vertrauen und den Wunsch nach wiederholter Zusammenarbeit zwischen Entwicklern verschiedener Unternehmen zu schaffen. Um ein Badge zu verdienen, müssen alle MÜSSEN und MÜSSEN NICHT Kriterien erfüllt sein, alle SOLLTEN Kriterien müssen erfüllt sein oder eine Rechtfertigung enthalten, und alle EMPFHOLEN Kriterien müssen erfüllt sein oder nicht (wir wollen sie zumindest berücksichtigt wissen). Wenn lediglich ein allgemeiner Kommentar angebeben werden soll, keine direkte Begründung, dann ist das erlaubt, wenn der Text mit "//" und einem Leerzeichen beginnt. Feedback ist willkommen auf derGitHub-Website als Issue oder Pull-Request. Es gibt auch eine E-Mail-Liste für allgemeine Diskussionen.

Wir stellen Ihnen gerne die Informationen in mehreren Sprachen zur Verfügung, allerdings ist die englische Version maßgeblich, insbesondere wenn es Konflikte oder Inkonsistenzen zwischen den Übersetzungen gibt.
Wenn dies Ihr Projekt ist, zeigen Sie bitte Ihren Baseline-Badge-Status auf Ihrer Projektseite! Der Baseline-Badge-Status sieht so aus: Baseline-Badge-Level für Projekt 13561 ist in_progress So betten Sie das Baseline-Badge ein:
Sie können Ihren Baseline-Badge-Status anzeigen, indem Sie Folgendes in Ihre Markdown-Datei einbetten:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/13561/baseline)](https://www.bestpractices.dev/projects/13561)
oder indem Sie Folgendes in Ihr HTML einbetten:
<a href="https://www.bestpractices.dev/projects/13561"><img src="https://www.bestpractices.dev/projects/13561/baseline"></a>


Dies sind die Baseline Niveau 3 Kriterien. Dies sind Kriterienversion v2026.02.19.

Baseline Series: Baseline Niveau 1 Baseline Niveau 2 Baseline Niveau 3

        

 Grundlagen

  • Allgemein

    Hinweis: Andere Projekte können den selben Namen benutzen.

    An AI-assisted web accessibility tester that behaves like two W3C personas at once: a keyboard-only user ("Ade") and a screen-reader user ("Lakshmi"). It drives a page keyboard-only, records what happens at every focus stop, and emits evidence-linked findings mapped to specific WCAG success criteria — against any website.

    Bitte verwenden Sie das SPDX-License-Expression-Format; Beispiele sind "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "GPL-2.0+", "LGPL-3.0+", "MIT" und "(BSD-2-Clause OR Ruby)". Geben sie nicht die einfachen oder doppelten Anführungszeichen mit an.
    Wenn es mehr als eine Programmiersprache gibt, listen Sie sie als kommagetrennte Werte (Leerzeichen sind optional) auf und sortieren Sie sie von am häufigsten zum am wenigsten verwendeten. Wenn es eine lange Liste gibt, bitte mindestens die ersten drei häufigsten auflisten. Wenn es keine Programmiersprache gibt (z. B. ist dies nur ein Dokumentations- oder Testprojekt), verwenden Sie das einzelne Zeichen "-". Bitte verwenden Sie eine herkömmliche Großschreibung für jede Sprache, z.B. "JavaScript".
    Das Common Platform Enumeration (CPE) ist ein strukturiertes Namensschema für IT-Systeme, Software und Pakete. Es wird in diversen Systemen und Datenbanken bei der Meldung von Schwachstellen verwendet.

    keyboard-a11y-tester

    An AI-assisted web accessibility tester that behaves like two W3C personas at once: a
    keyboard-only user ("Ade") and a screen-reader user ("Lakshmi"). It drives a page
    keyboard-only, records what happens at every focus stop, and emits evidence-linked
    findings mapped to specific WCAG success criteria — against any website. Both
    personas run in the same pass by default; a --persona flag restricts to just one.

    It has two layers:

    • a deterministic runner (scripts/runner.mjs) that owns the mechanical, reproducible
      work — driving the page keyboard-only, capturing a per-step trace + screenshots, and
      computing the machine-decidable checks for both personas;
    • an AI-judgment layer — the invoking agent — that reads the trace/screenshots/census
      and judges what rules can't (task completion, logical focus/reading order, form
      quality, announcement quality). See SKILL.md for how an agent drives it.

    Standalone and portable: it depends only on playwright, yaml, pngjs, pixelmatch,
    and @guidepup/virtual-screen-reader, needs no bundled test cases, and writes all output
    to a per-user temp directory (never into this folder). The screen-reader persona
    never drives a real screen reader (NVDA/VoiceOver) — see "Screen-reader detection" below.

    Documentation: docs/usage.md (setup, dependencies, quick start,
    CAPTCHAs) · docs/interface.md (full CLI reference, output file
    schema, WCAG checks table).

    Quick start

    As a Claude Code plugin — register this repo as a plugin marketplace, then install it:

    /plugin marketplace add ezufelt/keyboard-a11y-tester
    /plugin install keyboard-a11y-tester@ezufelt
    

    The first command registers this repo as a marketplace (named ezufelt, per
    .claude-plugin/marketplace.json); the second installs the plugin. Once installed, the
    skill in SKILL.md becomes available to the agent.

    As a standalone clone — clone the repo and install its dependencies:

    git clone https://github.com/ezufelt/keyboard-a11y-tester.git
    cd keyboard-a11y-tester
    npm install
    npx playwright install chromium
    

    Then drive it directly (see Run against any URL).

    Requirements & dependencies

    Requires Node.js ≥ 20 and Chromium (via Playwright), plus five small npm dependencies —
    no build step. Run node scripts/setup-check.mjs to verify both before your first run.

    See docs/usage.md for the full dependency
    table, licensing credit for @guidepup/virtual-screen-reader, and setup instructions.

    Run against any URL (no test file needed)

    # quick unattended blind Tab-crawl of the start page, per viewport
    node scripts/runner.mjs --url https://example.com
    
    # a full scenario, driven live by the agent one keystroke at a time
    node scripts/runner.mjs serve --url https://example.com --goal "find the pricing page" \
    
         --viewport desktop --port 9400
    #   → prints:  READY <session-dir>   (under the system temp dir)
    node scripts/runner.mjs observe <session-dir>
    node scripts/runner.mjs step    <session-dir> --press Tab      # one keystroke; prints observation
    node scripts/runner.mjs step    <session-dir> --press Enter
    node scripts/runner.mjs step    <session-dir> --type "hello@example.com"
    node scripts/runner.mjs finish  <session-dir>                  # writes trace + findings
    node scripts/runner.mjs stop    <session-dir>
    

    See docs/usage.md for the full
    quick-start walkthrough, and docs/interface.md for every CLI flag and
    the complete output file schema.

    Authenticated runs

    Pages behind a login can't be tested with a fresh, logged-out browser. Pass a Playwright
    storageState JSON file with --storage-state <file> to start the browser with its cookies
    and localStorage already loaded (e.g. an already-logged-in session). Generate one with
    context.storageState({ path: 'auth.json' }) or npx playwright codegen --save-storage=auth.json <url>.
    The file is validated (exists, parses as JSON, and looks like a real storageState export —
    i.e. has cookies/origins arrays) before the browser launches — a missing or malformed file
    fails the run immediately rather than silently testing the logged-out site. In serve mode
    it's applied once at launch and the session browser keeps the state alive for every subsequent
    step.

    A storageState file holds live session cookies/tokens — treat it as a secret. Don't commit
    it; .gitignore already excludes auth.json, storageState.json, and *storage-state*.json,
    but a differently-named file won't be caught automatically.

    What the runner does (deterministic layer)

    Playwright (full Chromium, new-headless + SwiftShader for real pixels) drives the page with
    only the keyboard — it never calls .click() or .focus(); if a control is only
    reachable by pointer, that is itself a finding. It drops to a raw CDP session for the
    accessibility tree (Accessibility.getPartialAXTree), the ground truth for name/role/state.
    At startup it fails fast if :focus-visible does not fire on CDP-driven key events
    (every focus-indicator check would otherwise be invalid) — skipped entirely when
    --persona screen-reader is passed, since that persona has no pixel/focus-ring work.

    Checks are evaluated per focus stop the persona actually visits (keyboard persona) or
    against a page-wide structural census (screen-reader persona) — this is scenario
    testing, not an exhaustive page audit. Conformance target: AA is pass/fail, AAA is
    informative.

    WCAG Level Persona Check
    2.4.7 AA keyboard Focus indicator present
    2.4.13 AAA (informative) keyboard Focus indicator strength
    1.4.1 AA keyboard Indicator is not colour-only
    2.1.2 AA keyboard Keyboard trap
    2.4.1 AA keyboard No skip link
    2.4.3 AA keyboard Positive tabindex
    3.2.1 AA keyboard Context change from focus alone
    3.3.2 AA keyboard File input named only by the user-agent default ("Choose File")
    4.1.2 AA keyboard Focusable control with no accessible name
    1.1.1 AA screen-reader Missing alt text/aria-label
    1.3.1 AA screen-reader Heading level skip
    1.3.1 AA screen-reader Duplicate, unlabeled landmark roles
    4.1.2 AA screen-reader Interactive control announced as a bare role
    4.1.3 AA screen-reader Declared live region that never announced anything

    See docs/interface.md for the authoritative version of
    this table (full check descriptions) and the W3C persona references.

    Output

    Everything is written under a per-user temp dir (${TMPDIR}/keyboard-a11y-tester/…, or
    --out): a trace.json (per-step evidence), deterministic-findings.json (WCAG findings),
    screen-reader-census.json (screen-reader persona), and cropped screenshots/step_NNNN.png
    per viewport. See docs/interface.md for the
    complete directory layout and field-by-field schema of every output file.

    Focus-visible detection (2.4.7 AA presence + 2.4.13 AAA strength)

    Presence (AA) uses two independent signals, so a faint-but-real indicator is never
    missed:

    1. the focused element's computed style declares an outline or box-shadow (ground
      truth — recorded in the trace as computed_focus_style), or
    2. pixels change on focus (catches background/colour indicators with no outline).

    Either one means the indicator is present → AA pass. Pixel diffing compares the focused
    frame to a scroll-aligned baseline (the next step's frame, where the element is no longer
    focused — so focus is never manipulated programmatically), measuring ring slices at
    increasing offset (thin and offset outlines), the interior, and top/bottom edge bands.

    Strength (AAA, informative) measures whether the indicator meets 2.4.13 Focus
    Appearance — changed area ≥ a 2px-thick perimeter of the control, and ≥ 3:1 WCAG luminance
    contrast between focused and unfocused states. Advisory only. (This measure is unreliable
    on pages that mutate between steps — e.g. "load more" — because the neighbour-frame
    baseline then differs by content, not just the focus ring; treat AAA numbers on such pages
    with caution. AA presence is unaffected, being driven by the computed style.)

    So 2.4.7 (AA) requires only that an indicator is visible with no size/contrast minimum: a
    faint 1px or low-opacity ring passes AA and is flagged weak at AAA — rather than being
    falsely reported as "no focus indicator."

    Screen-reader detection (Lakshmi)

    The screen-reader persona is emulated, never driven for real: @guidepup/virtual-screen-reader
    builds an ARIA/ACCNAME-spec accessible tree over the live page and computes what a
    spec-compliant screen reader would announce, entirely in the browser's own JS engine — no
    NVDA/JAWS/VoiceOver is launched, and it works the same way on any OS the runner itself
    supports.

    Its self-contained browser bundle is injected via Playwright's context.addInitScript,
    which is not subject to the page's own CSP — verified against both a synthetic CSP-locked
    page and a real CSP-locked production site. Once injected, its virtual cursor tracks
    real keyboard focus automatically
    (it listens for native focusin events), so every
    step you drive with real Tab/Enter/etc. produces a matching sr_announcement with no
    separate "chasing" logic and no drift between what's focused and what's reported as
    announced. The same mechanism also wires a MutationObserver that computes WAI-ARIA
    live-region semantics and captures "assertive: …"/"polite: …" announcements as they
    happen — this is what 4.1.3 (Status Messages) findings are derived from.

    Separately, once per newly-visited page URL, an ephemeral instance walks the entire page
    in reading order (never touching the live per-step monitor) to build
    screen-reader-census.json — the source for the heading-hierarchy, duplicate-landmark,
    missing-alt-text, and bare-role-control checks, since those need whole-page context rather
    than just the stops a keyboard user's Tab order happens to visit.

    This augments but does not replace testing with a real screen reader and real users
    the upstream library's own README says exactly that, and it's worth repeating: this checks
    what a spec-compliant screen reader should announce given the page's ARIA/HTML, not the
    specific quirks of any one real screen reader implementation.

    CAPTCHAs

    CAPTCHAs detect automation and refuse to run; the runner has a page-scoped, human-approved
    compatibility workaround. See docs/usage.md for details.

    License

    MIT © Everett Zufelt. See LICENSE.

 Steuerelemente 0/21

  • Steuerelemente


    Wenn einem Job Berechtigungen in einer CI/CD-Pipeline zugewiesen werden, MUSS der Quellcode oder die Konfiguration nur die minimal erforderlichen Berechtigungen für die entsprechende Aktivität zuweisen. [OSPS-AC-04.02]
    Konfigurieren Sie die CI/CD-Pipelines des Projekts so, dass sie Benutzern und Diensten standardmäßig die niedrigsten verfügbaren Berechtigungen zuweisen und Berechtigungen nur bei Bedarf für bestimmte Aufgaben erhöhen. In einigen Versionsverwaltungssystemen kann dies auf Organisations- oder Repository-Ebene möglich sein. Falls nicht, setzen Sie Berechtigungen auf der obersten Ebene der Pipeline.


    CI/CD-Pipelines, die vertrauenswürdige Mitarbeitereingaben akzeptieren, MÜSSEN diese Eingaben bereinigen und validieren, bevor sie in der Pipeline verwendet werden. [OSPS-BR-01.04]
    CI/CD-Pipelines sollten alle Mitarbeitereingaben bei expliziten Workflow-Ausführungen bereinigen (in Anführungszeichen setzen, escapen oder bei erwarteten Werten beenden). Obwohl Mitarbeiter im Allgemeinen vertrauenswürdig sind, können manuelle Eingaben in einen Workflow nicht überprüft werden und könnten durch eine Kontoübernahme oder eine Insider-Bedrohung missbraucht werden.


    Wenn ein offizielles Release erstellt wird, MÜSSEN alle Assets innerhalb dieses Releases eindeutig mit dem Release-Identifikator oder einem anderen eindeutigen Identifikator für das Asset verknüpft sein. [OSPS-BR-02.02]
    Weisen Sie jedem vom Projekt produzierten Software-Asset einen eindeutigen Versionsidentifikator zu, der einer konsistenten Namenskonvention oder einem Nummerierungsschema folgt. Beispiele sind SemVer, CalVer oder Git Commit ID.


    Das Projekt MUSS eine Richtlinie für die Verwaltung von Secrets und Zugangsdaten definieren, die vom Projekt verwendet werden. Die Richtlinie sollte Leitlinien für die Speicherung, den Zugriff und die Rotation von Secrets und Zugangsdaten enthalten. [OSPS-BR-07.02]
    Dokumentieren Sie, wie Secrets und Zugangsdaten innerhalb des Projekts verwaltet und verwendet werden. Dies sollte Details darüber enthalten, wie Secrets gespeichert werden (z.B. unter Verwendung eines Tools zur Verwaltung von Secrets), wie der Zugriff kontrolliert wird und wie Secrets rotiert oder aktualisiert werden. Stellen Sie sicher, dass sensible Informationen nicht fest im Quellcode kodiert oder in Versionsverwaltungssystemen gespeichert werden.


    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation Anweisungen zur Überprüfung der Integrität und Authentizität der Release-Assets enthalten. [OSPS-DO-03.01]
    Anweisungen im Projekt sollten Informationen über die verwendete Technologie, die auszuführenden Befehle und die erwartete Ausgabe enthalten. Vermeiden Sie nach Möglichkeit die Speicherung dieser Dokumentation am gleichen Ort wie die Build- und Release-Pipeline, um zu vermeiden, dass eine einzelne Sicherheitsverletzung sowohl die Software als auch die Dokumentation zur Überprüfung der Integrität der Software kompromittiert.


    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation Anweisungen zur Überprüfung der erwarteten Identität der Person oder des Prozesses enthalten, die/der die Software-Release erstellt hat. [OSPS-DO-03.02]
    Die erwartete Identität kann in Form von Schlüssel-IDs zur Signierung, Aussteller und Identität aus einem Sigstore-Zertifikat oder ähnlichen Formen vorliegen. Vermeiden Sie nach Möglichkeit die Speicherung dieser Dokumentation am gleichen Ort wie die Build- und Release-Pipeline, um zu vermeiden, dass eine einzelne Sicherheitsverletzung sowohl die Software als auch die Dokumentation zur Überprüfung der Integrität der Software kompromittiert.


    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation eine beschreibende Aussage über den Umfang und die Dauer der Unterstützung für jedes Release enthalten. [OSPS-DO-04.01]
    Um den Umfang und die Dauer der Unterstützung für die veröffentlichten Software-Assets des Projekts zu kommunizieren, sollte das Projekt eine SUPPORT.md-Datei, einen "Support"-Abschnitt in SECURITY.md oder eine andere Dokumentation haben, die den Support-Lebenszyklus erklärt, einschließlich der erwarteten Dauer der Unterstützung für jedes Release, der Art der bereitgestellten Unterstützung (z.B. Fehlerkorrekturen, Sicherheitsaktualisierungen) und aller relevanten Richtlinien oder Verfahren zur Erlangung von Unterstützung.


    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation eine beschreibende Aussage enthalten, wann Releases oder Versionen keine Sicherheitsaktualisierungen mehr erhalten werden. [OSPS-DO-05.01]
    Um den Umfang und die Dauer der Unterstützung für Sicherheitskorrekturen zu kommunizieren, sollte das Projekt eine SUPPORT.md oder eine andere Dokumentation haben, die die Richtlinien des Projekts für Sicherheitsaktualisierungen erklärt.


    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, dass Code-Mitwirkende überprüft werden, bevor ihnen erweiterte Berechtigungen für sensible Ressourcen gewährt werden. [OSPS-GV-04.01]
    Veröffentlichen Sie eine durchsetzbare Richtlinie in der Projektdokumentation, die erfordert, dass Code-Mitwirkende überprüft und genehmigt werden, bevor ihnen erweiterte Berechtigungen für sensible Ressourcen gewährt werden, wie z.B. Merge-Genehmigung oder Zugriff auf Secrets. Es wird empfohlen, dass die Überprüfung die Feststellung einer begründbaren Identitätslinie beinhaltet, wie z.B. die Bestätigung der Zugehörigkeit des Beitragsleistenden zu einer bekannten vertrauenswürdigen Organisation.


    Wenn das Projekt ein Release erstellt hat, MÜSSEN alle kompilierten veröffentlichten Software-Assets mit einer Software-Stückliste (Software Bill of Materials) ausgeliefert werden. [OSPS-QA-02.02]
    Es wird empfohlen, SBOMs zum Build-Zeitpunkt automatisch mit einem Tool zu generieren, das auf Genauigkeit geprüft wurde. Dies ermöglicht es Benutzern, diese Daten auf standardisierte Weise zusammen mit anderen Projekten in ihrer Umgebung aufzunehmen.


    Wenn das Projekt ein Release erstellt hat, das mehrere Quellcode-Repositorys umfasst, MÜSSEN alle Unterprojekte Sicherheitsanforderungen durchsetzen, die genauso streng oder strenger sind als die primäre Codebasis. [OSPS-QA-04.02]
    Alle zusätzlichen Unterprojekt-Code-Repositorys, die vom Projekt erstellt und in ein Release kompiliert wurden, müssen Sicherheitsanforderungen durchsetzen, die dem Status und der Absicht der jeweiligen Codebasis entsprechen. Zusätzlich zur Befolgung der entsprechenden OSPS Baseline-Anforderungen kann dies die Anforderung einer Sicherheitsüberprüfung, die Sicherstellung, dass es frei von Schwachstellen ist, und die Sicherstellung, dass es frei von bekannten Sicherheitsproblemen ist, umfassen.


    Während das Projekt aktiv ist, MUSS die Dokumentation des Projekts klar dokumentieren, wann und wie Tests ausgeführt werden. [OSPS-QA-06.02]
    Fügen Sie der Beitragsdokumentation einen Abschnitt hinzu, der erklärt, wie Tests lokal und in der CI/CD-Pipeline ausgeführt werden. Die Dokumentation sollte erklären, was die Tests testen und wie die Ergebnisse interpretiert werden.


    Während das Projekt aktiv ist, MUSS die Dokumentation des Projekts eine Richtlinie enthalten, dass alle wesentlichen Änderungen an der vom Projekt produzierten Software Tests der Funktionalität in einer automatisierten Testsuite hinzufügen oder aktualisieren sollten. [OSPS-QA-06.03]
    Fügen Sie der Beitragsdokumentation einen Abschnitt hinzu, der die Richtlinie zum Hinzufügen oder Aktualisieren von Tests erklärt. Die Richtlinie sollte erklären, was eine wesentliche Änderung darstellt und welche Tests hinzugefügt oder aktualisiert werden sollten.


    Wenn ein Commit in den primären Branch gemacht wird, MUSS das Versionskontrollsystem des Projekts mindestens eine menschliche Genehmigung der Änderungen durch einen Nicht-Autor vor dem Zusammenführen erfordern. [OSPS-QA-07.01]
    Konfigurieren Sie das Versionskontrollsystem des Projekts so, dass mindestens eine menschliche Genehmigung der Änderungen durch einen Nicht-Autor vor dem Zusammenführen in den Release- oder primären Branch erforderlich ist. Dies kann erreicht werden, indem ein Pull-Request von mindestens einem anderen Mitarbeiter überprüft und genehmigt werden muss, bevor er zusammengeführt werden kann.


    Wenn das Projekt ein Release erstellt hat, MUSS das Projekt eine Bedrohungsmodellierung und eine Analyse der Angriffsfläche durchführen, um Angriffe auf kritische Codepfade, Funktionen und Interaktionen innerhalb des Systems zu verstehen und sich davor zu schützen. [OSPS-SA-03.02]
    Bedrohungsmodellierung ist eine Aktivität, bei der das Projekt die Codebasis, zugehörige Prozesse und Infrastruktur, Schnittstellen, Schlüsselkomponenten betrachtet und "wie ein Hacker denkt" und darüber nachdenkt, wie das System kompromittiert werden könnte. Jede identifizierte Bedrohung wird aufgelistet, damit das Projekt dann darüber nachdenken kann, wie Lücken/Schwachstellen, die entstehen könnten, proaktiv vermieden oder geschlossen werden können. Stellen Sie sicher, dass dies für neue Funktionen oder Breaking Changes aktualisiert wird.


    Während das Projekt aktiv ist, MÜSSEN alle Schwachstellen in den Softwarekomponenten, die das Projekt nicht betreffen, in einem VEX-Dokument berücksichtigt werden, das den Schwachstellenbericht mit Details zur Nicht-Ausnutzbarkeit erweitert. [OSPS-VM-04.02]
    Richten Sie einen VEX-Feed ein, der den Ausnutzbarkeitsstatus bekannter Schwachstellen kommuniziert, einschließlich Bewertungsdetails oder aller vorhandenen Abhilfemaßnahmen, die verhindern, dass anfälliger Code ausgeführt wird.


    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, die einen Schwellenwert für die Behebung von SCA-Befunden in Bezug auf Schwachstellen und Lizenzen definiert. [OSPS-VM-05.01]
    Dokumentieren Sie eine Richtlinie im Projekt, die einen Schwellenwert für die Behebung von SCA-Befunden in Bezug auf Schwachstellen und Lizenzen definiert. Fügen Sie den Prozess zur Identifizierung, Priorisierung und Behebung dieser Befunde hinzu.


    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, um SCA-Verstöße vor jedem Release zu beheben. [OSPS-VM-05.02]
    Dokumentieren Sie eine Richtlinie im Projekt, um anwendbare Software Composition Analysis-Ergebnisse vor jedem Release zu beheben, und fügen Sie Statusprüfungen hinzu, die die Einhaltung dieser Richtlinie vor dem Release überprüfen.


    Während das Projekt aktiv ist, MÜSSEN alle Änderungen an der Codebasis des Projekts automatisch anhand einer dokumentierten Richtlinie für bösartige Abhängigkeiten und bekannte Schwachstellen in Abhängigkeiten bewertet und dann im Falle von Verstößen blockiert werden, außer wenn sie als nicht ausnutzbar deklariert und unterdrückt wurden. [OSPS-VM-05.03]
    Erstellen Sie eine Statusprüfung im Versionskontrollsystem des Projekts, die ein Software Composition Analysis-Tool bei allen Änderungen an der Codebasis ausführt. Fordern Sie an, dass die Statusprüfung bestanden wird, bevor Änderungen zusammengeführt werden können.


    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, die einen Schwellenwert für die Behebung von SAST-Befunden definiert. [OSPS-VM-06.01]
    Dokumentieren Sie eine Richtlinie im Projekt, die einen Schwellenwert für die Behebung von Befunden aus Static Application Security Testing (SAST) definiert. Fügen Sie den Prozess zur Identifizierung, Priorisierung und Behebung dieser Befunde hinzu.


    Während das Projekt aktiv ist, MÜSSEN alle Änderungen an der Codebasis des Projekts automatisch anhand einer dokumentierten Richtlinie auf Sicherheitsschwachstellen bewertet und im Falle von Verstößen blockiert werden, außer wenn sie als nicht ausnutzbar deklariert und unterdrückt wurden. [OSPS-VM-06.02]
    Erstellen Sie eine Statusprüfung im Versionskontrollsystem des Projekts, die ein Static Application Security Testing (SAST) Tool bei allen Änderungen an der Codebasis ausführt. Verlangen Sie, dass die Statusprüfung erfolgreich ist, bevor Änderungen zusammengeführt werden können.


Diese Daten sind unter der Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0) verfügbar. Dies bedeutet, dass ein Datenempfänger die Daten mit oder ohne Änderungen weitergeben darf, solange der Datenempfänger den Text dieser Vereinbarung mit den weitergegebenen Daten zur Verfügung stellt. Bitte nennen Sie ezufelt und die OpenSSF Best Practices Badge-Mitwirkenden als Urheber.

Projekt-Badge-Eintrag im Besitz von: ezufelt.
Eintrag erstellt: 2026-07-10 18:22:26 UTC, zuletzt aktualisiert: 2026-07-10 21:04:01 UTC. Letztes erreichtes Badge: 2026-07-10 21:04:01 UTC.