Revision history HTML::Lint and Test::HTML::Lint. NOTE: All bugs and requests are now being handled through GitHub. https://github.com/petdance/html-lint/issues Please DO NOT send bug reports to http://rt.cpan.org/. 2.32 Fri Jun 22 15:57:39 CDT 2018 Note that this very well may be the final release of HTML::Lint that I make. I've been spending my time on HTML::Tidy5, which works on HTML5, checks for more problems, and is much faster. If you're interested in maintaining HTML::Lint, send me email at email@example.com. I'm not sure I want to hand it off to anyone yet, but we can discuss. [ENHANCEMENTS] Allow "weblint -" to read from STDIN. Thanks, Frank Dana. 2.30 Sun Jan 7 22:02:25 CST 2018 No changes since 2.27_03. 2.27_03 Wed Jan 3 17:07:07 CST 2018 [FIXES] Removed the text-invalid-entity and attr-invalid-entity, which were for entities that had an invalid numeric value, anything greater than 𐀀. There is no longer a restriction on the numeric values of HTML entities. (GH#60) 2.27_02 Wed Dec 27 11:46:28 CST 2017 There are be no functionality changes since 2.27_01. [INTERNALS] Many Perl::Critic cleanups. 2.27_01 Fri Dec 22 15:54:32 CST 2017 [ENHANCEMENTS] Adds checking of entities in attributes, not just text. Thanks, Klaus S. Madsen. [FIXES] Calling ->parsefile() would generate an error. Thanks, Shlomi Fish. (GH#58) [INTERNALS] Prepare for perl 5.26.0 which removes '.' from @INC. Thanks, Jim Keenan. Fix disttest target. Thanks, Shlomi Fish. 2.26 Thu Dec 29 22:36:54 CST 2016 Stable release. No changes from previous release. 2.25_02 Tue Dec 27 14:34:22 CST 2016 [FIXES] html_fragment_ok() was not properly excluding document-level errors. It was effectively the same as html_ok(). 2.25_01 Fri Dec 23 22:36:17 CST 2016 [ENHANCEMENTS] Added two new types of errors to let you know you're using the API incorrectly. You should be parsing files like this: my $lint = HTML::Lint->new; $lint->newfile( $filename ); $lint->parse( $line ); $lint->eof(); my @errors = $lint->errors(); If you neglect to call ->parse or ->eof, you'll get an error returned in the list of errors from ->errors(). [FIXES] Test::HTML::Lint::html_fragment_ok() was not properly calling ->eof. 2.24 Wed Dec 7 22:20:13 CST 2016 Official release. No changes from 2.23_01. 2.23_01 Tue Dec 6 22:48:56 CST 2016 [ENHANCEMENTS] Added detection of unknown HTML entities, like "known &unclosed &entities are not found". Also fixes the case where HTML::Lint gets confused by an entity like "²" which it thought was an unterminated "⊃" entity. Thanks, Klaus S. Madsen. [FIXES] Errors of the type doc-tag-required did not come out in any defined order. They are now sorted by tag name. This was discovered because hash randomization caused tests to fail on Perl 5.18 and above. Thanks, Slaven Rezic, Andrew Main and Lisa Hare. Handle some warnings that get thrown if certain values are undef. Thanks, Yves Lavoie. Handle characters that are not handled by HTML::Entities. (GitHub issue #13) Thanks, Tim Landscheidt. [INTERNALS] Add a test to verify a fixed bug. Thanks to Lance Wicks as part of the CPAN Pull Request Challenge. 2.22 Mon Apr 6 15:47:11 CDT 2015 [CHANGES THAT COULD BREAK YOUR CODE] Previously, html_ok() would not check the entire structure of a web page to check for <html>, <head>, <title> and <body> tags. Now it will. If you want to check fragments of HTML for validity but know that they are not valid HTML documents on their own, use the new html_fragment_ok(). [ENHANCEMENTS] Added new error, elem-input-alt-missing, that warns of <input type="image"> tags that are missing an alt="" attribute. This helps for accessability to make sure that any images have alternate text for screen readers. Added ability to modify HTML::Lint's table of known tags and attributes, so you could do this: # Add an attribute that your company uses. HTML::Lint::HTML4::add_attribute( 'body', 'proprietary-attribute' ); # Add the HTML 5 <canvas> tag. HTML::Lint::HTML4::add_tag( 'canvas' ); HTML::Lint::HTML4::add_attribute( 'canvas', $_ ) for qw( height width ); [FIXES] Test::HTML::Lint::html_ok() would not call the HTML::Lint eof() method, which meant it wouldn't do document-wide tests. 2.20 Fri Apr 6 00:49:51 CDT 2012 [ENHANCEMENTS] Sometimes creating HTML::Lint-compliant HTML just isn't possible. Now, you can now turn individual errors on and off in your HTML via comment directives, like so: <!-- html-lint elem-img-sizes-missing: off, attr-unknown: off --> And if you have a batch of code that's hopeless: <!-- html-lint all: off --> Added check for unknown entities, such as "&foo;". Added check for unclosed entitities, such as "&" without the closing semicolon. Added a check for a bare ampersand that should be written as & 2.10 Tue Dec 6 11:16:16 CST 2011 [FIXES] Tags that were self-closed were being ignored. For example, if you had <img src="blah.jpg" /> then HTML::Lint would ignore the tag. This has been fixed. [LICENSE] HTML::Lint is now explicitly licensed under Artistic License 2.0, instead of the vague "same terms as Perl itself." 2.06 Thu Dec 18 00:07:54 CST 2008 [FIXES] Added attributes to <frameset>. <strong> tag didn't allow any attributes. Now it does. Removed the <listing> tag. 2.04 Mon Jun 2 11:41:16 CDT 2008 [FIXES] <textarea> now knows about the wrap attribute. [INTERNALS] Lots of enhancements pointed out by Perl::Critic. 2.02 Thu Nov 3 11:49:18 CST 2005 [ENHANCEMENTS] * The warnings for missing ALT and HEIGHT/WIDTH on your images now give the SRC attribute. 2.00 Tue Sep 20 23:10:39 CDT 2005 [CHANGES THAT COULD BREAK YOUR CODE] * I've changed the object structure. HTML::Lint now has-a HTML::Parser, and no longer is-a HTML::Parser. * weblint-cgi and weblint-original are no longer distributed with HTML::Lint. * Now requires Perl 5.6.0. [FIXES] * Line numbering is now correct if you parse more than one file. * Changed t/*.*.t so that they only had one period in the filename. Apparently VMS doesn't like filenames with multiple dots. Pre-2.00 I've thrown away previous history because really, nobody cares what changed in this module prior to 2005.