When a page holds too much
One observation keeps at most 150 marks and 400 tree lines. What the server keeps first, how it flags what lies under a banner, and how the model narrows an observation to the part it needs.
The caps, and the order under them
One observation holds at most 150 marks and 400 tree lines. When a page
has more, marks_truncated or tree_truncated reads true, and the server
keeps, in this order:
- what belongs to a layer above the page, with all it holds: a dialog, a
modal node, or a node fixed or sticky that paints over content in view,
such as a cookie banner, or a sticky header once the page has scrolled under
it. Its tree lines come first, under a line
overlay "layer above the page"; - what is in view and not covered;
- what is in view under a layer, flagged
covered: true: the layer would take the click, so a click on it is refused (element_obscured); - the rest, in document order.
The marks kept are numbered from 1 in document order. A page under the caps is
read whole, with neither covered nor the overlay line.
The order exists because of where a consent banner sits: fixed over the view,
but late in the document. Kept in document order, it was cut, and the buttons
under it were offered to the model as if a click could reach them. On a test
page of 643 things to click with a banner fixed over its lower part, the three
buttons of the banner are now marked and listed first, the elements under it
read covered, and a click on Refuse by its mark takes the banner away.
Layers are told from the snapshot alone, by paint order and pointer events, without one call per element; a fixed container around the whole page is not a layer. The cases this does not settle are on Limits.
Narrowing an observation
observe takes two optional parameters that shrink the tree and the elements
before the caps apply. Neither changes the page nor the image.
| Parameter | Keeps |
|---|---|
region | the subtree of one landmark, and every landmark of that name: banner, navigation, main, contentinfo, complementary, form, search or dialog |
contains | the tree lines that carry a text, compared without case, accents or extra spaces, with their ancestors and two lines of context on each side |
The two combine. The marks that remain are numbered again from 1, for that
observation only, and counters gains lines_before_filter,
lines_after_filter and, with region, region_found, which reads false
when the page has no such landmark: an empty tree, not an error.
contains reads the tree after the values of sensitive fields are withheld. A
text that is only the value of a password field returns nothing, so the
parameter cannot be used to guess a password.