{
  "slug": "html-image-inventory",
  "name": "gizza-ai/html-image-inventory",
  "version": "0.1.0",
  "title": "HTML Image Inventory — Alt Text, Size & Loading Audit — gizza.ai",
  "description": "Paste HTML and list every img and picture source with alt text, width, height, loading hints, and flags for missing alt or dimensions. Runs in your browser.",
  "tags": [
    "html image inventory",
    "missing alt text",
    "image alt checker",
    "img tag list",
    "explicit width and height",
    "srcset audit",
    "picture source",
    "layout shift images"
  ],
  "category": "image",
  "urls": {
    "page": "https://gizza.ai/tools/html-image-inventory/",
    "markdown": "https://gizza.ai/tools/html-image-inventory/index.md",
    "descriptor": "https://gizza.ai/tools/html-image-inventory/tool.json",
    "deep_link_example": "https://gizza.ai/tools/html-image-inventory/?html=%3Cimg%20src%3D%22%2Fhero.jpg%22%20alt%3D%22Team%20on%20a%20rooftop%22%20width%3D%221200%22%20height%3D%22800%22%3E%0A%3Cimg%20src%3D%22%2Fpromo.png%22%20loading%3D%22lazy%22%3E&format=markdown&include_sources=true&only_issues=true&flag_empty_alt=true&include_summary=true"
  },
  "cli": "gizza tool html-image-inventory '<img src=\"/hero.jpg\" alt=\"Team on a rooftop\" width=\"1200\" height=\"800\">\n<img src=\"/promo.png\" loading=\"lazy\">'",
  "tool": {
    "description": "Build a table of every image source declared in pasted HTML. Each <img> and each <picture><source> candidate becomes a row reporting src, srcset, sizes, alt text, width, height, loading, decoding, fetchpriority, media, type, class, id, and title. Images are flagged missing-alt (no alt attribute at all — an explicit alt=\"\" is the correct decorative marker and is not flagged unless flag_empty_alt=true), missing-width / missing-height (no valid non-negative-integer content attribute, so the browser reserves no space and the layout shifts as the image loads), and no-source (neither src nor srcset). format='markdown' (default), 'csv', or 'json'. include_sources (default true) adds the <picture><source> rows; only_issues (default false) lists just the flagged rows; include_summary (default true) prepends the counts. Attributes are read from the static markup only: nothing is fetched, so real file sizes, real pixel dimensions, broken links, CSS background images, and JavaScript-injected images are out of scope. Caps at 2000 rows.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "flag_empty_alt": {
          "default": false,
          "description": "Also flag images with an explicit alt=\"\" as an issue. Default false, because an empty alt is the correct markup for a purely decorative image.",
          "type": "boolean"
        },
        "format": {
          "default": "markdown",
          "description": "Output shape: markdown (default, one table row per image plus a responsive-sources list), csv (one flat row per image, spreadsheet-ready), or json (structured, with a counts summary).",
          "enum": [
            "markdown",
            "csv",
            "json"
          ],
          "type": "string"
        },
        "html": {
          "description": "The raw HTML to inventory, e.g. a page's source, a template fragment, or an email body. Parsed with a real HTML parser, so unquoted attributes and unclosed tags are fine.",
          "type": "string"
        },
        "include_sources": {
          "default": true,
          "description": "Include each <picture><source> candidate as its own row, with its srcset, media query, and type. Default true. <source> elements inside <video>/<audio> are always ignored.",
          "type": "boolean"
        },
        "include_summary": {
          "default": true,
          "description": "Prepend the counts summary (images, picture sources, missing alt, missing dimensions, lazy-loaded). Default true; set false for a bare table.",
          "type": "boolean"
        },
        "only_issues": {
          "default": false,
          "description": "List only the rows that carry at least one issue (missing-alt, missing-width, missing-height, no-source). Default false — list every image.",
          "type": "boolean"
        }
      },
      "required": [
        "html"
      ],
      "type": "object"
    }
  }
}