Novus Stream Solutions
All tutorials

Novus Examples

Test against the twelve live targets

Twelve live pages, each exhibiting exactly one behaviour — landmarks, nested modals, infinite scroll, cookie banners, frame nesting — for accessibility, scraper, and browser-automation testing.

Some of what you need to test has no file form. A focus trap, an infinite scroll sentinel, a consent banner, a nested iframe — these are page behaviours, and testing them normally means finding a real site that happens to do the thing and hoping it does not change.

The live targets at /targets are purpose-built pages, each isolating one behaviour and nothing else. When a test fails against one, the cause is unambiguous.

Contents
  1. 1.1. Know what the twelve cover
  2. 2.2. Use the accessibility targets for tooling checks
  3. 3.3. Use the automation targets for scrapers
  4. 4.4. Use the table and scroll-spy targets for UI logic
  5. 5.5. Confirm the drop zone uploads nothing
  6. 6.6. Pair live targets with downloadable fixtures

Two ways to finish

Accessibility

Landmarks, focus traps, scroll spy, forced themes.

Automation

Infinite scroll, tables, iframes, slow load, banners.

  1. 1

    1. Know what the twelve cover

    The set covers ARIA landmarks (banner, navigation, main, complementary, contentinfo), nested modals with focus trapping and Escape stacking, infinite scroll with a sentinel, a print stylesheet, a slow-loading page, a cookie banner with Accept and Reject, a sortable and filterable table, a file drop zone, a nested iframe chain, a scroll-spy nav, and pages that force dark and force light.

    Each is deliberately narrow. The landmark page is landmarks; it is not also running an analytics script and a carousel, which is what makes a failure attributable.

    • Twelve pages, one behaviour each, nothing else going on.
    • Covers accessibility, scraping, and browser automation.
    • Isolation is the feature — a failure has one possible cause.
  2. 2

    2. Use the accessibility targets for tooling checks

    The landmarks page verifies that a screen-reader tool or audit correctly enumerates the five landmark roles. The nested-modal page checks focus trapping and whether Escape unwinds the stack in the right order — a bug so common it is almost a convention.

    The forced-dark and forced-light pages check that theme-aware tooling respects an explicitly declared colour scheme rather than assuming the system preference.

  3. 3

    3. Use the automation targets for scrapers

    Infinite scroll with a sentinel is the canonical scraper problem, and having a page whose only job is to append content lets you confirm your virtualization or scroll handling works before pointing it at anything real.

    The iframe nest — outer to inner to leaf srcDoc — tests frame walking, which is where a surprising number of automation scripts quietly give up. The slow-load page checks loading states and timeouts, and the cookie banner checks CMP dismissal.

  4. 4

    4. Use the table and scroll-spy targets for UI logic

    The sortable, filterable table gives you known rows against which to verify sort order, filter combinations, and the interaction between the two. Because the data is fixed, an expected result is something you can assert rather than eyeball.

    The scroll-spy page exercises sticky section navigation driven by IntersectionObserver and CSS anchors, which is a common source of off-by-one active-section bugs.

  5. 5

    5. Confirm the drop zone uploads nothing

    The file drop zone accepts drag-and-drop or a file picker and lists the filenames locally. Nothing is uploaded, which makes it safe to test with whatever is on your machine.

    That property is worth verifying rather than assuming — pointing your own tooling at it and confirming no network request fires is a useful check on your tooling as much as on the page.

  6. 6

    6. Pair live targets with downloadable fixtures

    A realistic test run needs both. The drop zone plus a deliberately corrupt file from the library exercises an upload flow end to end; the print-stylesheet page plus a generated PDF exercises a document pipeline.

    Live targets cover behaviour, downloadable fixtures cover content, and most real bugs live at the seam between the two.

One behaviour per page, so a failure has one cause

Twelve live pages each isolate a single behaviour — landmarks, focus traps, infinite scroll, print CSS, slow load, consent banners, table sort, drop zones, iframe nesting, scroll spy, and forced themes. Pair them with downloadable fixtures: targets test behaviour, files test content, and the interesting bugs sit at the seam.

Frequently asked questions

Quick answers to common questions about this topic.

What is a live target?

A page built to exhibit exactly one behaviour — a focus trap, an infinite scroll sentinel, a consent banner — rather than a file you download. There are twelve of them at /targets.

Why not test against a real site?

Because a real site does a dozen things at once and changes without warning. When a test fails against a target that only does one thing, the cause is unambiguous.

Does the file drop zone upload anything?

No. It accepts drag-and-drop or a file picker and lists filenames locally. Nothing is uploaded, which makes it safe to test with real files from your machine.

Should I use targets or downloadable fixtures?

Both. Targets exercise page behaviour and downloadable fixtures exercise content. Most real bugs turn up at the seam — for example, a corrupt file dropped into an upload flow.