pngtoicotool
Private, browser-only tools

IOS WEB CLIP ICONS

Apple Touch Icon Selector

For an iOS Web Clip, an Apple touch icon is selected from the page’s icon declarations by target size: an exact size first, then the smallest larger icon, or the largest smaller icon when no larger one exists. With no explicit link, iOS searches root-level apple-touch-icon filenames.

Paste the page’s HTML head, list the deployed paths you want checked, and enter a target icon size. This browser ranks declared candidates and shows which paths are present in your list. It sends no page, file list, or declaration to a server.

Trace a selection

LOCAL SELECTION TRACE

See the candidate path for a target size

Runs in this browser

Add a file list and a target size to begin.

HOW THE TRACE IS DERIVED

A size rule, a path match, and an explicit limit

Rank declarations by the requested size

For links with numeric sizes, the trace looks for an exact square size. If none exists, it ranks the smallest declared size above the target; when every declared size is below the target, it ranks the largest one. A tie stays visible as ambiguous instead of being broken by markup order.

A link without a numeric sizes value remains unranked. The tool has filenames, not image bytes, so it cannot infer that file’s pixel dimensions or claim that a size-ranked candidate is the only possible choice.

Separate a chosen reference from a listed file

The selected declaration is compared with the supplied inventory after resolving its path. The result distinguishes a listed path, an absent path, a tied candidate, and a reference that cannot be ranked. A declaration can therefore be the size-rule leader while still being missing from the inventory.

This trace does not open URLs, inspect response headers, fetch icons, decode images, compare transparency, or simulate a device. It calculates from your pasted text and path names only.

Use root names only when no touch-icon link exists

When the head has no apple-touch-icon link, the tool looks only at root-level inventory names beginning with apple-touch-icon. Numbered square PNG names are ranked by their filename size; an unsized apple-touch-icon.png stays as a fallback candidate.

Apple’s archived guide documents root-directory lookup and gives a 58-pixel example that checks apple-touch-icon-80x80.png before apple-touch-icon.png. The tool generalizes that example to other numbered filenames as a filename-based model, not as a real-device measurement.

Keep this check distinct from package auditing

A package audit asks whether declared references and package files correspond. This selector asks which touch-icon declaration ranks for a supplied target size, then reports whether that path appears in the inventory. It does not audit a web app manifest or judge an icon’s visual quality.

Rule source: Apple’s archived Safari Web Content Guide. The file-presence result comes only from the list you provide.

VIDEO WALKTHROUGH

Watch the Apple touch icon selection trace

Follow how declared icon sizes are ranked, when root-level filename fallback is considered, and what the local trace can and cannot confirm.

Watch on YouTube

THE TRACE IN FOUR STEPS

From an icon declaration to a bounded result

A 180-pixel target ranks declared Apple touch-icon sizes: an exact 180 by 180 candidate wins; without an exact match, use the smallest larger size, or the largest smaller size if none is larger.
First rank the declared square sizes against your target. Exact matches lead; otherwise the nearest available side of the target leads.
When no apple-touch-icon link is declared, root-level numbered Apple touch-icon filenames are candidates; a similarly named file inside an icons folder is outside the root fallback list.
Use filename fallback only when the page has no Apple touch-icon link, and keep the check at the site root.
The selected declaration path is checked against the supplied file list: an exact path match is listed; no match means only that it is absent from that list.
A winning declaration and a listed file are separate facts. “Not in list” does not mean the public URL returned an error.
The browser-local selector ranks names and declarations, but does not fetch URLs, decode image pixels, or simulate an iPhone Home Screen.
The result is a reproducible name-and-rule trace, not a network check or a device observation.

REPRODUCIBLE TRACE RECORDS

Four inputs, sixteen calculated traces

These are constructed path-and-markup fixtures entered into the selector above. Each row records the selector’s browser-rendered result for that exact head, inventory, page path, and target. The values are rule calculations from names and declarations; they are not device observations, image-byte checks, or claims about a live website.

Set A · Declared sizes with one unsized link

Input head: <link rel="apple-touch-icon" sizes="152x152" href="/icons/ipad.png">; <link rel="apple-touch-icon" sizes="180x180" href="/icons/phone.png">; <link rel="apple-touch-icon" href="/icons/unsized.png">; <link rel="apple-touch-icon" sizes="256x256" href="/icons/large.png">. Inventory: icons/ipad.png, icons/phone.png, icons/unsized.png, icons/large.png. Page path: /demo/page.html.

TargetSelected path and tool relationOther ranked candidatesMissing or unresolved reason shown
180icons/phone.png · Listed · Exact sizeicons/ipad.png 152x152; icons/large.png 256x256icons/unsized.png · Listed · No numeric size; tool says it remains unranked and could affect the actual choice.
152icons/ipad.png · Listed · Exact sizeicons/phone.png 180x180; icons/large.png 256x256icons/unsized.png · Listed · No numeric size; tool says it remains unranked and could affect the actual choice.
200icons/large.png · Listed · Smallest larger sizeicons/phone.png 180x180; icons/ipad.png 152x152icons/unsized.png · Listed · No numeric size; tool says it remains unranked and could affect the actual choice.
300icons/large.png · Listed · Largest smaller sizeicons/phone.png 180x180; icons/ipad.png 152x152icons/unsized.png · Listed · No numeric size; tool says it remains unranked and could affect the actual choice.

Set B · A tied rank with paths absent from the supplied list

Input head: <link rel="apple-touch-icon" sizes="120x120" href="/missing/small.png">; <link rel="apple-touch-icon" sizes="152x152" href="/icons/tie-a.png">; <link rel="apple-touch-icon" sizes="152x152" href="/missing/tie-b.png">; <link rel="apple-touch-icon" sizes="256x256" href="/icons/large.png">. Inventory: icons/tie-a.png, icons/large.png. Page path: /demo/page.html.

TargetSelected path and tool relationOther ranked candidatesMissing or unresolved reason shown
152Ambiguous top candidates; icons/tie-a.png and missing/tie-b.png · Tied · Exact sizeicons/large.png 256x256missing/tie-b.png and missing/small.png · Not in supplied list.
130Ambiguous top candidates; icons/tie-a.png and missing/tie-b.png · Tied · Smallest larger sizeicons/large.png 256x256missing/tie-b.png and missing/small.png · Not in supplied list.
180icons/large.png · Listed · Smallest larger sizeicons/tie-a.png 152x152; missing/tie-b.png 152x152; missing/small.png 120x120missing/tie-b.png and missing/small.png · Not in supplied list; neither outranks the selected path.
300icons/large.png · Listed · Largest smaller sizeicons/tie-a.png 152x152; missing/tie-b.png 152x152; missing/small.png 120x120missing/tie-b.png and missing/small.png · Not in supplied list; neither outranks the selected path.

Set C · Root filename fallback with a subdirectory decoy

Input head: no Apple touch-icon link. Inventory: apple-touch-icon-80x80.png, apple-touch-icon-152x152.png, apple-touch-icon-180x180.png, apple-touch-icon.png, and icons/apple-touch-icon-256x256.png. The selector only included the root-level filename candidates in this fallback trace; the nested path was not ranked. Page path: /demo/page.html.

TargetSelected path and tool relationOther ranked candidatesMissing or unresolved reason shown
58apple-touch-icon-80x80.png · Listed · Smallest larger filename sizeapple-touch-icon-152x152.png 152x152; apple-touch-icon-180x180.png 180x180apple-touch-icon.png · Unsized root fallback; nested icons/apple-touch-icon-256x256.png is outside the root-name candidate list.
100apple-touch-icon-152x152.png · Listed · Smallest larger filename sizeapple-touch-icon-80x80.png 80x80; apple-touch-icon-180x180.png 180x180apple-touch-icon.png · Unsized root fallback; nested icons/apple-touch-icon-256x256.png is outside the root-name candidate list.
167apple-touch-icon-180x180.png · Listed · Smallest larger filename sizeapple-touch-icon-152x152.png 152x152; apple-touch-icon-80x80.png 80x80apple-touch-icon.png · Unsized root fallback; nested icons/apple-touch-icon-256x256.png is outside the root-name candidate list.
200apple-touch-icon-180x180.png · Listed · Largest smaller filename sizeapple-touch-icon-152x152.png 152x152; apple-touch-icon-80x80.png 80x80apple-touch-icon.png · Unsized root fallback; nested icons/apple-touch-icon-256x256.png is outside the root-name candidate list.

Set D · No root-level filename candidate

Input head: no Apple touch-icon link. Inventory: icons/apple-touch-icon-180x180.png, favicon.png, manifest.webmanifest. Page path: /demo/page.html. For each entered target below, the browser displayed “No root candidate found” and “No root-level apple-touch-icon PNG filename was present in the supplied inventory.”

TargetTool resultCandidate listReason
58No root candidate foundNo candidate path could be derivedNo root-level apple-touch-icon PNG filename was present in the supplied inventory.
100No root candidate foundNo candidate path could be derivedNo root-level apple-touch-icon PNG filename was present in the supplied inventory.
167No root candidate foundNo candidate path could be derivedNo root-level apple-touch-icon PNG filename was present in the supplied inventory.
200No root candidate foundNo candidate path could be derivedNo root-level apple-touch-icon PNG filename was present in the supplied inventory.

Unmatched and unresolved result categories

  • Not in supplied list: a resolved declared path has no exact normalized match in the inventory, as with missing/tie-b.png in Set B; this is a list mismatch, not an HTTP check.
  • Ambiguous top candidates: two paths share the best size rank, as the paired 152x152 declarations do at the targets shown in Set B; markup order does not break the tie.
  • No numeric size: Set A’s unsized declaration has a listed path but cannot be ranked from a pixel target; the result explicitly keeps that uncertainty visible.
  • No root candidate found: Set D has no root-level name matching the fallback pattern; a matching name under icons/ does not qualify as a root candidate.
  • Unsized root fallback: Set C includes apple-touch-icon.png, which the result keeps visible without deriving pixel dimensions from its filename.

The result is an input-to-output trace: markup or root filenames plus an inventory and target produce a ranked path, a tie, or a stated absence. A “Listed” badge confirms only that the path text appears in the supplied inventory; it does not confirm that a file exists online or that iOS displayed it. For browser and desktop icon size checks, see the favicon size guide.

SCOPE

What this result can establish

Does this prove which icon an iPhone displayed?

No. It applies the documented size guidance to the declaration text and inventory you entered. It does not run Safari on an iPhone or observe a Home Screen result.

What does “missing from inventory” mean?

The chosen reference path did not exactly match a normalized path in your supplied list. The tool does not request that path, so it cannot tell whether a remote server serves it.

Why can a declared icon remain unranked?

A link with no numeric sizes value cannot be compared by pixel size from names alone. Add a declared size or provide image measurements separately; this tool will not guess them.