Spracherkennung für: .md vermutete Sprache: Abap {ABAP[143] Masm[55] Delphi[53]} [Methode: maximale Elemente, drei Dimensionen]
## Highlight pseudos
There are many subtle browser differences
in rendering these pseudo-elements,
most
of which comply with the specs, so here are some hints.
Use the helpers
in `support/highlights.css`
and `support/selections.js`
where
possible. They
include rules
and functions
for “basic” but tricky tasks
like
setting up a test area, selecting content,
and triggering spellcheck.
When creating complex layered references, start
by wrapping your
text in a
relative container, then prepend absolute layers with copies
of that
text, then
mark up those copies with spans. Make everything transparent initially,
and set
visible styles
on the spans only. The absolute layers will perfectly overlap
your original
text, which you can keep
for external layout.
For example:
```html
<
div class=
"container">
<
div class=
"spelling-error"><span>Teh</span> <span>dgo</span>
and
<span>teh</span> <span>sphixn</span>.</
div>
<
div class=
"selection">Teh d<span>go
and te</span>h sphixn.</
div>
Teh dgo
and teh sphixn.
</
div>
```
```css
.container {
position: relative;
color: transparent; }
.container >
* { position: absolute; }
.spelling-error > span { background: ...;
color: ...; }
.selection > span { background: ...;
text-shadow: ...; }
```
Simplify this pattern
at your own peril!
For example,
if you
set backgrounds
directly
on layers
as your highlight backgrounds, they will always be exactly
`
line-height` tall, but even
if your `
line-height`
is 1, the actual
line boxes
and so
on can still be taller (unless they contain Ahem
text only).
## Selection regression tests
Four tests are based
on the properties described
in <
https://crrev.com/915543>,
and were designed
to catch regressions
as bugs were fixed
in Chromium:
* selection-originating-underline-order.html (P1)
* selection-originating-decoration-color.html (P3)
* selection-originating-strikethrough-order.html (P4)
* selection-background-painting-order.html (P5)
Ideally we would want a test
for property P2, that
line-through decorations are
always painted over
text when selecting some
of that
text. But unfortunately,
originating decoration recoloring (
when correctly implemented) essentially makes
it impossible
to tell whether the
text or the decoration was painted
on top.
Some ways this test could become possible:
* Wider impl support for ::target-text or ::highlight decorations.
Decorations introduced
by highlight pseudos aren’t recolored, so
we could
move the originating
text-decoration
to any highlight
that paints
under ::selection (currently all
of them), choose
another ::selection
color,
and check which
is painted
on top.
* SVG adds support for text-decoration-color, or HTML adds support
for stroke
and stroke-width via CSS,
as long
as we
continue to
recolor originating decorations
to color only. Then we could
stroke
in another
color,
and check which
is painted
on top.
* css-pseudo adds some kind of support for suppressing or otherwise
tweaking the recoloring
of originating decorations.
* Some other standard means for text to contain colors other than
the
color property, such
as color fonts.