The reporter renders the current viewport in-browser — no screen-recording permission, no extension, no camera.
Annotation tools
| Tool | Draws |
|---|---|
pen | Freehand. Five colours, three thicknesses. |
highlighter | Translucent freehand. |
rect · ellipse | Outlined shapes for circling a control. |
arrow | Points at the thing that broke. |
text | A label. Three sizes. |
blur | Redaction. Rendered opaque into the image — see below. |
pointer | Select, move and resize existing marks. |
The palette and sizes are identical across every TraceItX SDK, so a report looks the same whichever platform filed it.
Redaction is baked, not overlaid
A blur shape is rendered opaque into the image bytes before upload — not
stored as a region for a viewer to honour. The pixels underneath are gone by the
time the report leaves the browser.
That distinction matters. An overlay is a request; a bake is a guarantee. If a user blurs their bank balance, no receiver, no dashboard and no support engineer can recover it, because it was never uploaded.
The same applies to elements marked sensitive in code, which are masked before the screenshot is taken at all. See Sensitive content.
In the envelope
Two attachments can appear, and they are different things:
kind | What it is |
|---|---|
screenshot | The capture as taken. |
annotated-screenshot | The baked result, with drawings and redactions applied. |
Plus payload.annotations and payload.redactions, recording the vector shapes
the user drew. A dashboard can re-render annotations over the clean screenshot,
or offer a toggle — but only annotations. Redactions cannot be undone from the
annotated image, by design.
Size
The screenshot is usually most of a report’s bytes. Typical sizes are in Errors & limits.
Canvas and cross-origin content
An image drawn from another origin without CORS headers taints the canvas, and a
tainted canvas cannot be read. Those regions come back blank rather than
failing the capture. Serve images with Access-Control-Allow-Origin if they
matter to your bug reports.