---
name: "HTML::Lint::Error"
section: "3pm"
platform: "linux"
package: "libhtml-lint-perl"
version: "2.32+dfsg-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::Lint::Error"
---

# HTML::Lint::Error(3pm)

Error object for the Lint functionality

## NAME

HTML::Lint::Error - Error object for the Lint functionality

## SYNOPSIS

See HTML::Lint for all the gory details.

## EXPORTS

None.  It's all object-based.

## METHODS

Almost everything is an accessor.

## Error types: "STRUCTURE", "HELPER", "FLUFF"

Each error has a type.  Note that these roughly, but not exactly, go from most severe to least severe.

- •

  `"STRUCTURE"`

  For problems that relate to the structural validity of the code. Examples: Unclosed \<TABLE\> tags, incorrect values for attributes, and repeated attributes.

- •

  `"HELPER"`

  Helpers are notes that will help you with your HTML, or that will help the browser render the code better or faster.  Example: Missing HEIGHT and WIDTH attributes in an IMG tag.

- •

  `"FLUFF"`

  Fluff is for items that don't hurt your page, but don't help it either. This is usually something like an unknown attribute on a tag.

### new()

Create an object.  It's not very exciting.

### is\_type( $type1 \[, $type2 \] )

Tells if any of *$type1*, *$type2*... match the error's type. Returns the type that matched.

```
    if ( $err->is_type( HTML::Lint::Error::STRUCTURE ) ) {....
```

### where()

Returns a formatted string that describes where in the file the error has occurred.

For example,

```
    (14:23)
```

for line 14, column 23.

The terrible thing about this function is that it's both a plain ol' formatting function as in

```
    my $str = where( 14, 23 );
```

AND it's an object method, as in:

```
    my $str = $error->where();
```

I don't know what I was thinking when I set it up this way, but it's bad practice.

### as\_string()

Returns a nicely-formatted string for printing out to stdout or some similar user thing.

### file()

Returns the filename of the error, as set by the caller.

### line()

Returns the line number of the error.

### column()

Returns the column number, starting from 0

### errcode()

Returns the HTML::Lint error code.  Don't rely on this, because it will probably go away.

### errtext()

Descriptive text of the error

### type()

Type of the error

## POSSIBLE ERRORS

Each possible error in HTML::Lint has a code.  These codes are used to identify each error for when you need to turn off error checking for a specific error.

### api-parse-not-called

You called the `"errors()"` method before calling `"parse()"` and `"eof()"`.

### api-eof-not-called

You called the `"errors()"` method before calling `"eof()"`.

### config-unknown-directive

Unknown directive "DIRECTIVE"

You specified a directive in a comment for HTML::Lint that it didn't recognize.

### config-unknown-value

Unknown value "VALUE" for DIRECTIVE directive

Directive values can only be "on", "off", "yes", "no", "true", "false", "0" and "1".

### elem-unknown

HTML::Lint doesn't know recognize the tag.

### elem-unopened

`"</tag>"` with no opening `"<tag>"`.

### elem-unclosed

`"<tag>"` at WHERE is never closed.

### elem-empty-but-closed

`"<tag>"` is not a container -- `"</tag>"` is not allowed.

### elem-img-alt-missing

`"<img src="FILENAME.PNG">"` does not have ALT text defined.

### elem-img-sizes-missing

`"<img src="FILENAME.PNG">"` tag has no HEIGHT and WIDTH attributes.

### elem-nonrepeatable

`"<tag>"` is not repeatable, but already appeared at WHERE.

### doc-tag-required

`"<tag>"` tag is required.

### attr-repeated

ATTR attribute in `"<tag>"` is repeated.

### attr-unknown

Unknown attribute "ATTR" for tag `"<tag>"`.

### text-unclosed-entity

Entity ENTITY is missing its closing semicolon

### text-unknown-entity

Entity ENTITY is unknown

### text-use-entity

Character "CHAR" should be written as ENTITY

## COPYRIGHT & LICENSE

Copyright 2005-2018 Andy Lester.

This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License v2.0.

http://www.opensource.org/licenses/Artistic-2.0

Please note that these modules are not products of or supported by the employers of the various contributors to the code.

## AUTHOR

Andy Lester, `"andy at petdance.com"`
