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
autocompletechecking 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
minlengtha non-error forinput[type=password]/input[type=text] - Made multiple values in
integritya non-error - Made
<time>with element children an error if nodatetimespecified - 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 itscontentattribute and checking of the value of the Content-Security-Policy HTTP header. - Made the Content Security Policy
nonceattribute a non-error. - Aligned
on*event-handler-attribute checking with spec. - Aligned
iframe[sandbox]checking with spec. - Made
minlengthattribute a non-error. - Dropped “heading needed” warning for cases where
aria-labelfound. - 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=switcha non-error. - Made
role=groupforheader&footera non-error. - Made
role=searchforforma non-error. - Made the Subresource Integrity
integrityattribute 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
timeelements 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
rubyelement.
29 June 2015
- Added error messages for deprecated CSS media types/features.
- Changed checking of the
acceptattribute for input[type=file] to allow file extensions in the value (per spec). - Added error for documents that have multiple
autofocusattributes. - 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
inputmodeattribute to a warning. - Fixed a bug that caused spurious error to be emitted for ID references
in
aria-controlsandaria-labelledbywith 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
titleelement 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
useragentparameter, 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.limitJava system prop &--messages-limitoption 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
--formatoption tojson,xml,xhtml, orhtml(but notgnuortext), the output now includes:- an extract from the doc source (
extractfield 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
--javaversionoption, to generate class files targeted for particular VM versions (compiles for Java6/1.6 by default).
- added new "
sizesattr required whensrcsetspecifies width" check - added
--skip-non-htmloption 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-htmloption provides the old default behavior: it make the checker skip any files without .html, .htm, .xhtml, or .xht extensions. - added
--javaversionoption 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
--stacksizeoption to build script & removed harcoded stack size - fixed several bugs in
sizeschecking - 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
.csluploads 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 thetypeattribute - added initial (liberal) support for ARIA in SVG
- dropped error for
X-UA-Compatible: IE=EdgeHTTP 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
formattr 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@nameandlink@relvalues - CLI now exits with
1if any errors are found - CLI no longer says
XHTML elementin error messages - switched to galimatias for URL checking
- updated to latest ICU4J
- release now includes WAR file
- initial
vnu.jarrelease