Direct answer: of the 15 product-entry pages in the study-4 sample, 13 were fetched reliably; six contain a textarea form and they carry 62 visible controls. 11 have an associated label (17.7%), 36 rely on a placeholder (58.1%), none is required, nine use autocomplete (all on P15) and none uses email/tel types. Across homepages, contact pages and product pages: only 38 of 222 controls have an associated label (17.1%).

This study parses control attributes only; it does not execute JavaScript, submit forms or measure screen readers or mobile keyboards.

13
product pages
6
with enquiry form
62
visible controls
11
labelled
36
placeholder only
0
required

Method: product entry pages with the same control rule

On 2026-11-08 between 21:41 and 21:42 we re-requested the 15 product-entry URLs from study 4 and kept the 13 that returned 200 reliably; every non-hidden/submit/button/reset/image control (including select/textarea) was counted. Only for/id, a wrapping label, aria-label/labelledby and title count as a label.

ItemRuleBoundary
Product sample13 of 15 P ids fetchedFailures are not counted as zero
Enquiry formform containing a textareaSearch/newsletter boxes excluded
Associated labelfor/id, wrapping label, aria, titleTable text and proximity excluded
type / autocompleteLiteral attribute valuesKeyboard and autofill not tested

Result: 62 controls, 11 labelled

ItemControlsShare of 62
Associated label1117.7%
Placeholder only3658.1%
Required00%
Autocomplete914.5%
type=email / tel0 / 00%

Controls cluster on a few pages: P02 has 25, P13 11 and P15 nine, while most others have 0–5. Of the 11 labelled controls, P02 contributes seven and P03 four. All nine autocomplete attributes sit in one form on P15.

Three-page matrix: 222 controls, 38 labelled

MeasureHomepage (25)Contact (9)Product (13)Total
Visible controls709062222
Associated label14131138 (17.1%)
Placeholder only325636124 (55.9%)
Required0000
Autocomplete213924 (10.8%)
type=email / tel0000

The three page types agree on two points: no control is required and none uses email/tel types. They differ on labels and autofill: product pages label 17.7%, between homepages at 20.0% and contact pages at 14.4%; autocomplete appears on only three sites (E08, E19, P15), so it is a per-site setting rather than a template default.

What this means for acceptance

  1. Put labels into product-page acceptance too. Only 11 of 62 controls have an associated label and 58.1% rely on placeholders.
  2. Add types and autocomplete. Across three page types there are no email/tel types and autocomplete covers only 10.8%; mobile keyboards and autofill cannot help.
  3. Do not judge required from the front end alone. None of the 222 controls is required; constraints may live in the back end or JavaScript.
  4. Fix it at template level. Missing labels and types repeat on homepages, contact pages and product pages, which points to templates rather than single pages.
  5. Use one acceptance sheet for all three page types. Record controls, labels, type and autocomplete with the same rule instead of checking only the homepage. See the website development service.

Limits

  • 13 of 15 pages: two product pages were not fetched reliably and are excluded, not counted as zero.
  • HTML only: no JavaScript execution, no form submission, no screen-reader or mobile-keyboard test.
  • Label rule is finite: table text, visual proximity and complex aria combinations are not counted.
  • Different page sets: 25 homepages, nine contact pages and 13 product pages, with overlapping but not identical sites; the comparison is side by side only.
  • Pilot: the same equipment-company sample; no industry claim.

Data and reproduction

Anonymised data: equipment-product-form-controls-2026.csv (13 rows × 13 columns: status, forms, controls, labels, placeholder-only, required, autocomplete, type, time). The repository keeps docs/research/2026-11-product-form-controls.csv.

Parser: scripts/form_label_probe.py (including inputs()); unit tests: scripts/test_content_form_inputs.py (4) and scripts/test_content_form_labels.py (7, both offline). Run:

python -m unittest scripts.test_content_form_inputs scripts.test_content_form_labels

Related: the homepage form-input pilot, the contact-page enquiry-form pilot, and the product entry-page AI-readability pilot.

Sources and definitions

  1. Sample: product entry pages P01–P15 from study 4; 13 fetched this run.
  2. Fetch: 2026-11-08 21:41–21:42 Asia/Shanghai, serial, 0.5 s apart, 15-second timeout.
  3. Controls: input/select/textarea excluding hidden/submit/button/reset/image.
  4. Label: for/id, wrapping label, aria-label/labelledby, title; nothing else counts.

Frequently asked questions

Why only 13 product pages?

The study-4 product-entry sample has 15 P ids; 13 were fetched reliably this time and the other two were excluded rather than counted as zero controls.

Does zero required mean no validation?

No. required is only a client-side constraint; none appeared on the 13 pages, and validation may be server-side or JavaScript.

Why only nine autocomplete attributes?

All nine sit in one form on P15; the other 12 pages have none, so autofill is a single-site setting rather than common practice.

Do product pages have fewer controls than homepages?

The medians are close: 62 controls across 13 product pages versus 70 across 25 homepages; product pages are denser per page, but the page types differ and are only compared side by side.

Do 25 sites represent the industry?

No. This is the same equipment-company sample; the product-page subset is 13 pages and is not an industry sample.

Can the data be re-checked?

Yes. The public CSV has 13 rows by 13 columns; scripts/form_label_probe.py has 11 offline unit tests.

About the author

Lingyi Information Official (delivery team) works on requirements, proposals and acceptance for corporate websites, brand and smart-manufacturing projects. This article parses product-page HTML control attributes only; it does not execute scripts, submit forms or test screen readers or mobile keyboards, and is not a verdict on any site; the 13-page sample is a pilot.

Missing canonical is a common homepage gap

25 sites: 9 canonical, 16 missing; 8 og:url.

Request a recheck plan