Follow-up to #176.
Before #176, hidden-text-strip detached the entire hidden wrapper, which took image alt, aria-label, title, SVG <title> / <desc>, and data-* attributes with it. After #176 it only blanks Text nodes inside the hidden subtree. Attribute-shaped payloads inside a hidden box are now only caught by attribute-targeted rules — primarily attribute-injection-sanitize and svg-text-strip — if they match those rules' pattern sets.
In other words: hidden-text-strip is no longer back-stopping attribute-shaped injections inside hidden boxes. The broad "wipe everything inside the box" sweep is gone.
What to audit
Walk every rule that scrubs attribute or text content based on INJECTION_PATTERNS (extension/src/rules/injection-patterns.generated.ts) and check whether its match shape covers the payload classes that previously fell to hidden-text-strip's wrapper removal:
attribute-injection-sanitize — does it catch alt, aria-label, title, data-* consistently across element types?
svg-text-strip — covers SVG <title> / <desc> text; does it also cover SVG attribute payloads?
- Any others that read
INJECTION_PATTERNS?
For each gap found, decide: extend the pattern set, extend the rule's selector, or accept and document.
Acceptance
- Inventory of attribute-shaped payload classes formerly caught only by
hidden-text-strip.
- For each class: which rule (if any) covers it now, and what the gap is.
- Filed individual issues or pattern additions for confirmed gaps.
Out of scope
meta-injection-strip / noscript-strip watcher gaps — tracked separately.
html-comment-strip broad-sweep restoration — tracked separately.
Follow-up to #176.
Before #176,
hidden-text-stripdetached the entire hidden wrapper, which took imagealt,aria-label,title, SVG<title>/<desc>, anddata-*attributes with it. After #176 it only blanks Text nodes inside the hidden subtree. Attribute-shaped payloads inside a hidden box are now only caught by attribute-targeted rules — primarilyattribute-injection-sanitizeandsvg-text-strip— if they match those rules' pattern sets.In other words:
hidden-text-stripis no longer back-stopping attribute-shaped injections inside hidden boxes. The broad "wipe everything inside the box" sweep is gone.What to audit
Walk every rule that scrubs attribute or text content based on
INJECTION_PATTERNS(extension/src/rules/injection-patterns.generated.ts) and check whether its match shape covers the payload classes that previously fell tohidden-text-strip's wrapper removal:attribute-injection-sanitize— does it catchalt,aria-label,title,data-*consistently across element types?svg-text-strip— covers SVG<title>/<desc>text; does it also cover SVG attribute payloads?INJECTION_PATTERNS?For each gap found, decide: extend the pattern set, extend the rule's selector, or accept and document.
Acceptance
hidden-text-strip.Out of scope
meta-injection-strip/noscript-stripwatcher gaps — tracked separately.html-comment-stripbroad-sweep restoration — tracked separately.