With a few exceptions, this is a record of mainly just user-facing changes—that is, either changes to the actual behavior of the checker, or changes to any options/interfaces the checker exposes for developers.
29 June 2016
- JSON/gnu message formats updated to ensure doc URL is always included
<!-->
(IE conditional comment end) is now (again) a non-error<template>
contents are now hidden from outline views
20 June 2016
- fixes problem that made the release jars unusable with Scala
sbt test
- adds “Heading-level outline” in Web UI; shows simple h1-h6 hierarchy
18 June 2016
- link[rel=stylesheet] in body now non-error (body-OK)
- rel=dns-prefetch|preconnect|prefetch|preload|prerender non-error+body-OK
- style[scoped] now error
- iframe[seamless] now error
--
(consecutive hyphens) within a comment now non-error- new specific error for
--!>
at end of a comment - new specific error for
<!--
within a comment - multiple meta[charset] now error
autocomplete
checking now aligned with current spec- label[form] now error
- a|area[rel=noopener] now non-error
- allow-presentation/allow-orientation-lock in iframe[sandbox] non-error
- label-less empty option now non-error if datalist child
- section[role=navigation|complementary|banner] now non-error
3 March 2016
- Made
minlength
a non-error forinput[type=password]
/input[type=text]
- Made multiple values in
integrity
a non-error - Made
<time>
with element children an error if nodatetime
specified - Improved CSP checking (now using Salvation 2.0.1)
- [WebUI] Dropped “Using the schema…”/“The Content-Type was…” Info msgs
- [WebUI] Added some autofocus of URL field and Message Filtering button
- [WebUI] Footer now tells whether document was served w/ charset param
- [WebUI] Fixed bug/regression in Image Report image display
- [build] Fixed bug caused by Rhino team building their jar with Java6
- [build] Fixed some problems with running build script on Windows
- [build] Made build script work with Python 3 (not just Python 2)
1 January 2016
- Java8 is now required to run the checker (and to build it).
- Made the
<meta http-equiv=content-security-policy content="...">
element a non-error & added syntax checking of itscontent
attribute and checking of the value of the Content-Security-Policy HTTP header. - Made the Content Security Policy
nonce
attribute a non-error. - Aligned
on*
event-handler-attribute checking with spec. - Aligned
iframe[sandbox]
checking with spec. - Made
minlength
attribute a non-error. - Dropped “heading needed” warning for cases where
aria-label
found. - Made unescaped ampersand a non-error in, e.g.
href="foo?bar=1&baz=2"
. - Added error for
img[alt=""]
w/role
!=presentation
. - Made
role=switch
a non-error. - Made
role=group
forheader
&footer
a non-error. - Made
role=search
forform
a non-error. - Made the Subresource Integrity
integrity
attribute a non-error and added syntax checking for it. - Refined bad-URL error message to indicate which character is invalid.
- Refined Web UI "Message Filtering" to show total error/warning counts
- Refined Web UI to show green if there are 0 errors or warnings to show
- Fixed "
input[type=hidden]
label descendants" bug (@takenspc patch) - Refined Web UI to remove background colors and increase font size
- Made a variety of refinements and fixes to ARIA role checking.
- Made
ol>li[role=menuitem]
&ol>li[role=tab]
non-errors. - Added warnings for use of ARIA roles with implicit-semantics elements.
- Made nesting of
time
elements a non-error. - Made checker ignore
input[type=hidden]
label descendants in checks. - Improved errors for obsolete media types/features.
- Fixed bug in checking of the content model for the
ruby
element.
29 June 2015
- Added error messages for deprecated CSS media types/features.
- Changed checking of the
accept
attribute for input[type=file] to allow file extensions in the value (per spec). - Added error for documents that have multiple
autofocus
attributes. - Made the
<rb>
and<rtc>
elements non-errors. - Made use of
data-*
attributes for SVG & MathML elements non-errors. - Made use of HTML content in the SVG
<desc>
,<title>
, and<metadata>
elements a non-error (per spec). - Changed error message for the
inputmode
attribute to a warning. - Fixed a bug that caused spurious error to be emitted for ID references
in
aria-controls
andaria-labelledby
with trailing whitespace. - Fixed a bug that prevented the command-line checker from being able to check URLs when run in a Windows environment. (patch from @mariusj)
- Added option to disable log4j when using Java API. (patch from @abrin)
12 April 2015
- Fixed regression that caused spurious errors for
input[type=email]
. - Fixed regression in war caused by missing jar needed for gzip handling.
28 March 2015
- Renamed from “Nu HTML Checker” to “Nu Html Checker”.
- Improved error messages for
input[type]
attribute mismatches. - Added support for checking
object[typemustmatch]
per-spec. - Added error message for
title
element that only has whitespace. - Dropped all
meta[name]
checking. Any arbitrarymeta[name]
value is now accepted unchecked. - Made a couple select/option error messages more precise.
- Added
useragent
parameter, for allowing you to specify any arbitrary user-agent string for the checker to use when fetching remote documents. - Added option to limit maximum number of errors shown. Exposed thru
nu.validator.messages.limit
Java system prop &--messages-limit
option for the build script. Controls limit on maximum number of messages the checker service will report for a single document before stopping with a “Too many messages” fatal error. - Make the API/CLI (command-line interface) emit source extracts &
“hilite” info. When you set the
--format
option tojson
,xml
,xhtml
, orhtml
(but notgnu
ortext
), the output now includes:- an extract from the doc source (
extract
field in JSON output) - which extract part to hilight (JSON
hiliteLength
&hiliteStart
) - error range starting line/column (JSON
firstColumn
&firstLine
)
- an extract from the doc source (
- Added full support for checking documents at SNI origins.
- Fixed regression that caused CLI/API to parse .xhtml docs as text/html instead of using the XML parser.
- Changed backend handling for the case when the “promiscuous-ssl” option is on (that is, when you’re requesting the doc-fetching backend ignore any SSL/TLS cert errors). This should be a transparent change.
- Now available from (Maven) Central Repository (nu.validator.validator).
- Made a number of look&feel refinements to the Web frontend.
- Replaced all Jena IRI code dependencies with dependency on galimatias.
- Updated doc-fetching backend to Apache HTTP Components HttpClient 4.4.
- Upgraded to Jetty 9.2.9 & upgraded many other build/run dependencies to latest versions; e.g., log4j 1.2.17, Apache Commons Codec 1.10.
- Dropped some dependencies that aren’t actually needed.
- Changed build to cut dependency download size from ~300MB down to ~16MB.
- Made change to force java to always use Saxon instead of Xalan.
- Renamed all org.whattf classes to nu.validator.
- Did large reorganization/consolidation of sources.
- Added
--javaversion
option, to generate class files targeted for particular VM versions (compiles for Java6/1.6 by default).
- added new "
sizes
attr required whensrcset
specifies width" check - added
--skip-non-html
option to CLI; http://goo.gl/sKjRD5 This change alters the default CLI handling of non-HTML files. Before the CLI by default skipped any files without .html, .htm, .xhtml, or .xht extensions; instead now by default all files found are checked, regardless of extension. The--skip-non-html
option provides the old default behavior: it make the checker skip any files without .html, .htm, .xhtml, or .xht extensions. - added
--javaversion
option to build script and changed default build behavior to now generate vnu.jar/vnu.war builds that can run in Java6 VMs (as well as in any newer VMs). To generate a vnu.jar/vnu.war build with a newer/different VM target, use, e.g.,--javaversion=1.8
. - added
--stacksize
option to build script & removed harcoded stack size - fixed several bugs in
sizes
checking - fixed position reporting of bad character refs in
title
&textarea
- fixed ARIA checking to allow
li[role=separator]
&time[role=timer]
- refined content-type check to treat
.csl
uploads as application/xml - refined "unexpected content-type" error msg to include URL of document
- refined a few things in TestRunner
- updated Rhino dependency to rhino1_7R5
- made SVG
<style>
not require thetype
attribute - added initial (liberal) support for ARIA in SVG
- dropped error for
X-UA-Compatible: IE=Edge
HTTP header. Thx @zcorpan - dropped error for
meta[http-equiv=X-UA-Compatible][content=IE=Edge]
- added version info to jar manifest file
- made nu.validator.client.TestRunner exit non-zero for test failures
- made build script explicitly request Python2. Thx @kurosawa-takeshi
- code cleanup to build script and some Java sources. Thx @cvrebert
- brought reporting of bad IDs in
form
attr into compliance with spec (see validator/validator.github.io#8 and thanks again to https://github.com/cavweb20)
- fixed bug that broke json & xml message output (see validator/validator.github.io#5 and thanks to https://github.com/cavweb20)
- added support for the
<picture>
element - improved ARIA support for various table elements
- made refinements to outline handling
- added experimental warnings for some heading/outline issues
- improved checking for
meta@name
andlink@rel
values - CLI now exits with
1
if any errors are found - CLI no longer says
XHTML element
in error messages - switched to galimatias for URL checking
- updated to latest ICU4J
- release now includes WAR file
- initial
vnu.jar
release