Free tool

HTML App-Readiness Checker

A standards validator says whether your markup is valid. This checker says whether the page will still work once it is packed inside an Android app — no server, no address bar, often no network.

Test a page

Parsing happens locally, so unreleased pages are safe to check.

Drop an .html fileor paste the markup below

Valid is not the same as app-ready

The W3C validator asks one question: does this markup follow the spec? A page can pass and still open as a white screen inside an app, because an app is a different environment — no web server, a file:// origin with browser restrictions attached, no address bar, and sometimes no network. This checker looks for the failures that come from that environment. Every rule exists because it has broken a real conversion.

The file:// origin

Bundled pages are loaded from the device's storage, not a server, so their origin is file://. Browsers treat it as uniquely restricted and three things stop working:

Two remedies: build modules into one classic script, or have the app serve bundled files from a small local HTTP server so the origin becomes http://localhost. The HTML to App builder takes the second route.

Paths that only exist on your machine

C:\Users\me\site\style.css works until the page is packed, at which point that file does not exist. Root-relative /css/style.css is nearly as fragile once the content lives somewhere other than a web root. Relative paths — style.css, ./img/logo.png, ../about.html — survive the move.

Plain HTTP and mixed content

Android blocks cleartext HTTP by default since Android 9, and a WebView showing an HTTPS page silently refuses HTTP subresources. No dialog — just a missing image or an unstyled page. Every absolute URL should be HTTPS.

The viewport tag

Without <meta name="viewport" content="width=device-width, initial-scale=1"> a WebView assumes a 980 px desktop layout and zooms out, so a responsive site appears as a tiny copy of itself. One line decides whether your responsive design is used or ignored. The opposite error is user-scalable=no, which blocks zooming — an accessibility failure reviewers notice.

What is not checked

This is not a full HTML5 conformance validator and cannot catch runtime problems such as a script that throws on an older WebView. Use it alongside the W3C validator, and test the finished app on a real device — still the only complete check.

Frequently asked questions

Why is my converted app just a white screen?

Most often a <script type="module"> tag, which browsers refuse on file:// pages so no JavaScript runs. Absolute paths and a missing DOCTYPE come next. All three are flagged here.

Is this the W3C validator?

No. It checks WebView-specific problems the spec does not care about — file:// restrictions, cleartext URLs, viewport — and skips general conformance. Use both.

Is my HTML uploaded?

No. The page is parsed in your browser; nothing is transmitted, so unpublished work is safe to check.

Do I have to fix every warning?

Blocking items will break the app. Warnings depend on how you ship: a CDN font is fine for a live-URL app and a blank space in an offline one.

If everything passes, will the app definitely work?

The static checks catch the common failures, not runtime ones. Install the built APK on a real phone before you share it.

Read next

Related tools

Ready to turn your site into an app?

Upload an HTML file or a ZIP, set your icon and name, and download a signed Android app. No Android Studio, no command line.

Open the builder