Rule 8.9.1
Summary
This test consists in searching patterns indicating that forbidden tags (not div
, span
or table
) are used for
layout purpose.
Business description
Criterion
Test
Description
Dans chaque page web les balises (à l’exception de
<div>
,<span>
et<table>
) ne doivent pas être utilisées uniquement à des fins de présentation . Cette règle est-elle respectée ?
Level
A
Technical description
Scope
Page
Decision level
Semi-Decidable
Algorithm
Selection
Set1
All the <a>
tags without href
, name
or id
attribute and without role
attribute whose value is button
.
CSS selector:
a:not([href])
:not([name])
:not([id])
:not([role=button])
Set2
All the following tags without content (text or tag child) :
<p>
<li>
CSS selector:
p:matchesOwn(^$):not(:has(*)):not([hidden]),
li:matchesOwn(^$):not(:has(*)):not([hidden])
Set3
All consecutive <br>
tags without text in between.
Process
Tests
Test1
Test emptiness of Set1.
- If empty, raise a MessageA
- If not empty, for each occurence of the Set1 raise a MessageB
Test2
Test emptiness of Set2.
- If empty, raise a MessageA
- If not empty, for each occurence of the Set2 raise a MessageC
Test3
Test emptiness of Set3.
- If empty, raise a MessageA
- If not empty, for each occurence of the Set3 raise a MessageD
Messages
MessageA: No suspect pattern detected
- code: NoPatternDetected_Rgaa40-8-9-1
- status: Pre-Qualified
- present in source: no
MessageB: Link without target
- code: LinkWithoutTarget
- status: Failed
- parameter: snippet
- present in source: yes
MessageC: Tags without content that are used for layout purpose
- code: TagsWithoutContentUsedForLayoutPurpose
- status: Failed
- parameter: snippet
- present in source: yes
MessageC: Consecutive tags that are used for layout purpose
- code: consecutiveTagsUsedForLayoutPurpose
- status: Failed
- parameter: snippet
- present in source: yes
Analysis
Failed
The page contains either consecutive <br>
tags without text in between, or a tag (<p>
or <li>
) without content
(text or tag child), or a link (without href
, name
or id
attribute and without role
attribute whose value is
button
).
Pre-qualified
In all other cases
Notes
On latest webdev data set (2013-10-30, 78,000 pages), links without target (a:not([href]):not([name]):not([id])) have been found on 18256 pages, i.e on 23% of the pages.