Skip to content
Novus Examples
html12.5 KB

Large Form: Sixty Fields (HTML)

Sixty named controls across ten titled sections. Large enough to expose pagination, truncation and quadratic behaviour in form extractors, and regular enough that a failure is easy to localise.

Preview — first 50 lineshtml
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Large form with sixty fields - Novus Examples</title>
<meta name="description" content="Ten sections of six controls each, for testing parsers at scale. SAMPLE test data only.">
<style>:root{--bg:#f6f7f9;--card:#fff;--fg:#1a1d23;--muted:#5b6472;--border:#d9dee6;--accent:#0f9d6b;--accent-d:#0c7f56;--err:#d33;--radius:10px}*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--fg);padding:2rem 1rem}.wrap{max-width:640px;margin:0 auto}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.75rem;box-shadow:0 1px 3px rgba(0,0,0,.05)}h1{margin:0 0 .25rem;font-size:1.55rem}.lead{margin:0 0 1.5rem;color:var(--muted)}form{display:grid;gap:1.1rem}.field{display:grid;gap:.35rem}label{font-weight:600;font-size:.92rem}.req{color:var(--err)}.hint{font-size:.8rem;color:var(--muted)}input,select,textarea{font:inherit;color:inherit;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .7rem;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}textarea{resize:vertical;min-height:110px}input[type=range]{padding:0}input[type=color]{height:44px;padding:.25rem}input[type=file]{padding:.45rem}.group{display:grid;gap:.45rem}.opt{display:flex;align-items:center;gap:.55rem;font-weight:400}.opt input{width:auto}.inline{display:flex;flex-wrap:wrap;gap:1rem}fieldset{border:1px solid var(--border);border-radius:12px;padding:1rem;margin:0}legend{font-weight:600;padding:0 .4rem}.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}button{font:inherit;font-weight:700;cursor:pointer;border:0;border-radius:var(--radius);padding:.7rem 1.3rem}.btn{background:var(--accent);color:#fff}.btn:hover{background:var(--accent-d)}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.3rem}.ok{display:none;background:#e7f7ef;border:1px solid #b6e6cf;color:#0c7f56;border-radius:var(--radius);padding:.7rem .9rem;font-size:.9rem}.foot{margin-top:1.25rem;font-size:.78rem;color:var(--muted);text-align:center}@media(max-width:480px){body{padding:1rem .5rem}.card{padding:1.25rem}}.grid2{display:grid;gap:1.1rem;grid-template-columns:1fr}@media(min-width:560px){.grid2{grid-template-columns:1fr 1fr}}.note{font-size:.82rem;color:var(--muted);border-left:3px solid var(--border);padding:.15rem 0 .15rem .7rem;margin:.2rem 0}.steps{display:flex;gap:.4rem;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 1.1rem;font-size:.8rem}.steps li{border:1px solid var(--border);border-radius:999px;padding:.2rem .7rem;color:var(--muted)}.steps li[aria-current=step]{border-color:var(--accent);color:var(--accent-d);font-weight:700}.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}table.matrix{width:100%;border-collapse:collapse;font-size:.85rem}table.matrix th,table.matrix td{border:1px solid var(--border);padding:.4rem .5rem;text-align:left}table.matrix th{background:#eef1f5;font-weight:600}[data-branch]{display:none}[data-branch].on{display:grid}input:read-only,textarea:read-only{background:#f1f3f6;color:var(--muted)}input:disabled,select:disabled,textarea:disabled{background:#eceff3;color:#9aa3af}</style>
</head>
<body>
<main class="wrap"><div class="card">
<h1>Sixty-field onboarding record</h1>
<p class="lead">Ten sections of six controls each, for testing parsers at scale. SAMPLE test data only.</p>
<form method="post" action="#" novalidate>
<div class="hp" aria-hidden="true"><label>Leave this field empty<input type="text" name="website" tabindex="-1" autocomplete="off"></label></div>
<fieldset><legend>Identity</legend>
<div class="field"><label for="f-given_name">First name</label><input id="f-given_name" type="text" name="given_name"></div>
<div class="field"><label for="f-family_name">Last name</label><input id="f-family_name" type="text" name="family_name"></div>
<div class="field"><label for="f-preferred_name">Preferred name</label><input id="f-preferred_name" type="text" name="preferred_name"></div>
<div class="field"><label for="f-email">Email</label><input id="f-email" type="email" name="email"></div>
<div class="field"><label for="f-phone">Phone</label><input id="f-phone" type="tel" name="phone"></div>
<div class="field"><label for="f-dob">Date of birth</label><input id="f-dob" type="date" name="dob"></div>
</fieldset>
<fieldset><legend>Home address</legend>
<div class="field"><label for="f-home_line1">Home line 1</label><input id="f-home_line1" type="text" name="home_line1"></div>
<div class="field"><label for="f-home_line2">Home line 2</label><input id="f-home_line2" type="text" name="home_line2"></div>
<div class="field"><label for="f-home_city">Home city</label><input id="f-home_city" type="text" name="home_city"></div>
<div class="field"><label for="f-home_region">Home region</label><input id="f-home_region" type="text" name="home_region"></div>
<div class="field"><label for="f-home_postcode">Home postcode</label><input id="f-home_postcode" type="text" name="home_postcode"></div>
<div class="field"><label for="f-home_country">Home country</label><input id="f-home_country" type="text" name="home_country"></div>
</fieldset>
<fieldset><legend>Postal address</legend>
<div class="field"><label for="f-post_line1">Postal line 1</label><input id="f-post_line1" type="text" name="post_line1"></div>
<div class="field"><label for="f-post_line2">Postal line 2</label><input id="f-post_line2" type="text" name="post_line2"></div>
<div class="field"><label for="f-post_city">Postal city</label><input id="f-post_city" type="text" name="post_city"></div>
<div class="field"><label for="f-post_region">Postal region</label><input id="f-post_region" type="text" name="post_region"></div>
<div class="field"><label for="f-post_postcode">Postal postcode</label><input id="f-post_postcode" type="text" name="post_postcode"></div>
<div class="field"><label for="f-post_country">Postal country</label><input id="f-post_country" type="text" name="post_country"></div>
</fieldset>
<fieldset><legend>Employment</legend>
<div class="field"><label for="f-employer">Employer</label><input id="f-employer" type="text" name="employer"></div>
<div class="field"><label for="f-job_title">Job title</label><input id="f-job_title" type="text" name="job_title"></div>
<div class="field"><label for="f-started_on">Started on</label><input id="f-started_on" type="date" name="started_on"></div>
<div class="field"><label for="f-employee_id">Employee id</label><input id="f-employee_id" type="text" name="employee_id"></div>
<div class="field"><label for="f-department">Department</label><input id="f-department" type="text" name="department"></div>
<div class="field"><label for="f-manager">Manager</label><input id="f-manager" type="text" name="manager"></div>
</fieldset>
<fieldset><legend>Previous employment</legend>
<div class="field"><label for="f-prev_employer">Previous employer</label><input id="f-prev_employer" type="text" name="prev_employer"></div>
<div class="field"><label for="f-prev_title">Previous job title</label><input id="f-prev_title" type="text" name="prev_title"></div>
105 lines total — download for the full file.

Specifications

Fields
60
Use Case
employment
Validation
HTML5 native
Honeypot
true
Standalone
true
Dependencies
none
Sections
10
Controls Per Section
6

What is a .html file?

HTML (HyperText Markup Language) is the structural markup language of the web, using nested tags to define document content, semantics, and links. It is typically paired with CSS for presentation and JavaScript for behavior. It is the foundational format rendered by browsers.

How to use this file

Use an example HTML file to test parsers, DOM construction, sanitization of untrusted markup, and rendering or scraping pipelines.

How to use this file for testing

“Large Form: Sixty Fields (HTML)” is a deterministic Novus Examples fixture for Form testing, Form parsing, Autofill testing, HTML parsing. HTML and PDF form files for testing scrapers, autofill, validators, and PDF form fillers across real-life use cases.

Documented properties for this file: 60 fields. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

This form is fictional SAMPLE content for tooling tests (autofill, scrapers, PDF fillers). It is not an official government, bank, or clinic form. Open the HTML offline or fill the PDF in any viewer; the demo submit path never stores data.

Embed this form

It's a single self-contained HTML file (inlined CSS, native validation, no external requests). Download it, host it on your own site, and drop it into any page with an iframe.

iframe embed
<!-- Download large-form-sixty-fields.html, host it on your site, then embed the form anywhere: -->
<iframe
  src="/path/to/large-form-sixty-fields.html"
  title="Large Form: Sixty Fields (HTML)"
  width="100%"
  height="640"
  loading="lazy"
  style="border:0">
</iframe>

Generated by generation/forms_p7.py. Free for any use, no attribution required — license.