Key takeaways
- Guideline 4.0 is about usability and polish. WebView apps fail it when browser habits – zooming, hover menus, clipped edges – show up inside an app.
- Combine viewport-fit=cover with env(safe-area-inset-*) padding, and use 16px or larger form fields to stop zoom on focus.
- Give links and buttons hit areas of at least 44x44 pt – in a WKWebView at initial scale, one CSS pixel equals one point.
- WebViewGold, built by our team, covers the native layer: splash, loading sign, swipe gestures, a native navigation footer, pull-to-refresh and dark mode options.
Our recommended solution
Rebuild your wrapper with WebViewGold – a real app, not just a website in a frame
WebViewGold turns your website into native iOS and Android apps with push notifications, a native offline screen, deep links, a QR scanner and more – the building blocks App Store reviewers look for. Built by our own team, and we submit WebViewGold apps all the time.
What the rejection typically looks like
Guideline 4.0 - Design
We noticed an issue in your app that contributes to a lower-quality user experience than App Store users expect:
- Parts of the app's user interface were crowded, laid out, or displayed in a way that made it difficult to use the app when reviewed on [iPhone model] running [iOS version].
Next Steps
Please revise your app to ensure that the content and controls on the screen are easy to read and interact with.
Paraphrased example – the exact wording in your message may differ.
What does a Guideline 4.0 Design rejection mean for a WebView app?
A Guideline 4.0 Design rejection means App Review found your WebView app hard to read, hard to operate or unfinished on a specific device. For website-based apps, the cause is usually a browser habit that looks like a defect in an app: content cut off by the Dynamic Island, a page that zooms when you tap a field, links too small to hit.
"Guideline 4.0" is the introduction to section 4 of the App Store Review Guidelines. It contains no rule list, just a standard:
Apple customers place a high value on products that are simple, refined, innovative, and easy to use, and that’s what we want to see on the App Store. Coming up with a great design is up to you, but the following are minimum standards for approval to the App Store.
Reviewers cite it when something concrete is wrong with the experience and no more specific rule fits. The bullet in your message usually names the device and the problem – that bullet is your to-do list. If the message instead calls the app a repackaged website, you're dealing with Guideline 4.2 for WebView apps, which calls for native functionality rather than polish. Our Guideline 4.0 guide covers native layouts and iOS 26 SDK changes; below are the fixes that live in your web code and your wrapper.
Browser tells: what the reviewer sees and where it comes from
| What the reviewer sees | Cause in your web app | Fix |
|---|---|---|
| Header buttons under the status bar or Dynamic Island | Edge-to-edge web view, fixed header at top: 0 | padding-top: env(safe-area-inset-top) |
| Bottom navigation behind the home indicator | Fixed footer at bottom: 0 | padding-bottom: env(safe-area-inset-bottom) |
| Page zooms in when a field is tapped | Form text smaller than 16px | Inputs, selects and text areas at 16px or more |
| Page drifts sideways or shrinks to a tiny desktop view | Missing viewport tag, fixed widths, wide tables | Responsive layout, max-width: 100% on media |
| Links and icons that are hard to hit | Targets sized for a mouse | Hit areas of at least 44x44 pt with spacing |
| Long press opens a link preview or callout | Default WebKit link behavior | Disable link previews and callouts on app controls |
| Menus that need hover or two taps | Desktop navigation patterns | Tap to open; hover only as an enhancement |
| No way back after following a link | No browser toolbar in an app | Swipe-back gesture and a visible back control |
| White flash or blank screen at launch | First page still loading | Splash or placeholder until the page has rendered |
| Dark page under a white status bar, or the reverse | Half-implemented dark mode | Dark styles everywhere – or light everywhere |
| Keyboard covers the field or the submit button | 100vh layouts, fixed footers | Dynamic viewport units, scroll the field into view |
Start with the bullet from your rejection, then work through every row: a second review round can land on a screen the first reviewer never opened.
Rejected or stuck? Talk to an App Specialist – for free.
Book a free consultation call: we look at your rejection or setup, explain the fastest way forward and tell you honestly whether you need us. Prefer to hand it off? Book our AI-powered + human-powered service and we take care of it.
Safe areas, viewport and zoom – with accessibility in mind
Edge to edge, but not under the hardware
If your wrapper lets the web view extend behind the status bar, set viewport-fit=cover in your viewport meta tag and pad the edges yourself. WebKit exposes four values for that: env(safe-area-inset-top), -right, -bottom and -left (WebKit). A complete tag reads <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">. Don't forget the side insets: in landscape, the camera housing sits on the left or right.
The alternative is a web view that stays inside the safe area – simpler, but then the status bar and home indicator areas need colors that match your page.
Stop accidental zoom without taking zoom away
The most common zoom complaint has a simple cause: iOS zooms into form fields with text smaller than 16px when they get focus. Set fields to 16px or more and the jump is gone. Sideways drifting usually comes from one element wider than the viewport – a table, an embed, an image without max-width: 100%.
Think twice before switching zoom off with user-scalable=no. A WKWebView honors it by default; only the ignoresViewportScaleLimits setting, which is false by default, lets users zoom anyway. People with low vision rely on pinch zoom, so remove the causes of accidental zoom and keep zoom available for articles, product photos and documents.
Touch, not mouse: tap targets, long press and hover
Apple's Human Interface Guidelines put it plainly: "As a general rule, a button needs a hit region of at least 44x44 pt". With width=device-width, initial-scale=1, one CSS pixel in a WKWebView equals one point, so 44x44 CSS pixels is your target for links, icons and menu items. The HIG's accessibility section adds spacing: about 12 points of padding around elements with a bezel, about 24 around elements without one.
- Grow the hit area, not the icon. Padding on the link or button enlarges the tappable region without changing the look.
- Turn off link previews on app controls. A long press on a link opens a preview by default –
allowsLinkPreviewistrueon iOS 10 and later. Set it tofalsenatively, or add-webkit-touch-callout: noneto navigation, tab bars and buttons. - Stop selecting the interface.
user-select: nonetogether with-webkit-user-select: noneon buttons, tabs and menus prevents selection handles. Leave selection on for content people may want to copy. - Replace hover with taps. Apple's WebKit team asks web developers to make sure a site "works great even without hover" and to avoid "forcing the user to tap twice for the most common interactions" (WWDC19). Open menus on tap and wrap hover effects in
@media (hover: hover).
The fastest fix for most WebView rejections
WebViewGold: native features for your web app
Instead of building native features from scratch, start from WebViewGold. You get ready-made Xcode and Android Studio projects for your website, with native modules you switch on in the configuration:
- Push notificationsOneSignal or Firebase, for real, personal events
- Native offline screenNo browser error pages when the connection drops
- Native splash screenApp-like start instead of a loading web page
- Deep linksLinks open the right screen inside the app
- QR & barcode scannerDevice features the website alone can't offer
- In-app purchasesNative purchase flows where the store requires them
No tool guarantees an approval: Apple still judges what your app offers. Use the native features in your main user journey – our App Specialists review your WebViewGold app before it goes to the App Store.
Navigation, loading states, dark mode and the keyboard
A way back on every screen
Inside an app there is no browser toolbar, so every deep page needs a way back. WKWebView supports the edge-swipe back gesture, but allowsBackForwardNavigationGestures defaults to false – switch it on, add a back control to your app header, or both.
Launch and loading
Apple's HIG asks for a launch screen "nearly identical to the first screen" of the app and places splash screens at the start of onboarding. For loading, its first rule is "Show something as soon as possible." In a WebView app, that means no white flash between launch screen and first page: keep a splash or skeleton visible until the start page has rendered, and give slow pages a progress indicator or placeholders.
Dark mode that matches
Add <meta name="color-scheme" content="light dark"> and dark styles via @media (prefers-color-scheme: dark) – or stay light everywhere on purpose, native status bar included. A dark page under a white status bar is the kind of mismatch reviewers screenshot.
Scrolling and the keyboard
Rubber-band scrolling shows whatever is behind the page, so give html and body your background color or turn the bounce off natively. In drawers and modals, overscroll-behavior: contain (Safari 16 and later) stops scroll chaining. When the keyboard opens, 100vh layouts and fixed footers often cover the active field; dynamic viewport units like dvh (Safari 15.4 and later) and scrolling the focused field into view fix most cases.
Option: let WebViewGold handle the native layer
Several fixes above are native settings, not CSS. WebViewGold, the website-to-app product built by our own team, exposes them as options in Config.swift of a native Xcode project:
| Design issue | What WebViewGold offers |
|---|---|
| White screen at launch | A splash screen that can stay until the start page has loaded (remainSplashOption), then a native loading sign or progress bar |
| Status bar and home indicator | Status bar colors for light and dark mode, a transparent status bar with automatic safe-area insets, and a bottom bar that keeps the home indicator off your content |
| No way back | Swipe navigation for back and forward (enableswipenavigation) and an optional native navigation footer with back, forward and custom buttons |
| Rubber band and refresh | preventoverscroll removes the bounce; set it to false if you use the native pull-to-refresh |
| App-only CSS | A custom CSS and JavaScript file applied to every page in the app – handy for callouts, selection and hiding web-only elements |
| Dark mode | A separate web address for users in Dark Mode, plus dark-mode colors for native elements |
| Offline | A native offline screen with a "Try again" button instead of a browser error |
One caution: WebViewGold also has preventZoom, which disables user zoom. Use it only if your content stays readable without zoom – see the accessibility note above. No tool can promise an approval, and the web layout itself remains your part of the work – or a job for the App Specialists at appsubmitter.io to review with you.
Test like a reviewer, then reply with screenshots
4.0 findings are device-specific, so test on more than your own phone before resubmitting:
- The device and iOS version from the rejection, your smallest and your largest supported iPhone, each in portrait and landscape.
- An iPad – iPhone apps run there too, and reviewers may test on one; see iPad issues in WebView apps.
- Light and Dark Mode, a slow connection and Airplane Mode.
- Every form with the keyboard open and every menu with a finger, not a trackpad.
Then reply in App Store Connect with before-and-after screenshots from the named device and one line per finding. Fixes in your web code are live without a new build; native changes need one. Design is partly subjective: if a reviewer flagged a deliberate choice, explain the user flow, appeal to the App Review Board if needed, or ask for a 30-minute App Review appointment via Meet with Apple.
For a second opinion before you resubmit, book a free consultation call. appsubmitter.io combines AI-powered pre-submission checks with App Specialists who know how reviewers read a wrapper app, and handles the submission in your developer account – book the iOS package. Code and design changes aren't included; we quote them upfront.
Template: how to reply to App Review
Adapt this template to your situation. Keep it factual, short and specific – and only claim what you have actually changed.
Checklist before you resubmit
- Fixed headers and footers use env(safe-area-inset-*) padding, including side insets in landscape.
- Form fields use at least 16px text, so focusing them doesn't zoom the page.
- No element is wider than the viewport, and zoom stays available for content.
- Links, icons and menu items have hit areas of at least 44x44 pt with spacing.
- Link previews, callouts and text selection are off on controls, not on content.
- Menus open on tap; hover effects only apply on devices that hover.
- Every screen has a way back: swipe gesture, back control or both.
- A splash or placeholder shows until the first page has rendered.
- Dark Mode is either fully supported, status bar included, or deliberately off.
- If you use WebViewGold, splash, swipe navigation, status bar and overscroll settings match your design.
Frequently asked questions
Why was my WebView app rejected under Guideline 4.0 Design?
Should I disable zoom in my WebView app?
How big should buttons be in a WebView app?
Is a splash screen allowed in an iOS app?
Do I need a dark mode for my WebView app?
prefers-color-scheme fully, including native areas such as the status bar, or keep the whole app light on purpose and test it with Dark Mode switched on.Can WebViewGold make my web app feel native?
Recommended solution
From WebView rejection to approval: WebViewGold + appsubmitter.io
- 1 Build with WebViewGold Turn your website into native iOS and Android projects.
- 2 Add native value Push, offline screen, deep links or scanning in your main flow.
- 3 We submit it Our App Specialists submit and talk to the review team.
WebViewGold is made by our team (jocapps GmbH). It is a tool, not a guarantee – approval decisions are made by Apple and Google.
Sources and further reading
- Apple – App Store Review Guidelines, 4 Design
- Apple Human Interface Guidelines – Buttons
- Apple Human Interface Guidelines – Accessibility
- Apple Human Interface Guidelines – Launching
- WebKit – Designing Websites for iPhone X (safe areas)
- Apple WWDC19 – Introducing Desktop-class Browsing on iPad (hover guidance)
- Apple Developer Documentation – WKWebViewConfiguration ignoresViewportScaleLimits
- WebViewGold documentation – Configure WebViewGold (iOS)
Store policies and third-party products change regularly – always check the current versions. This article is independent advice and not affiliated with or endorsed by Apple, Google or any other company or product mentioned; all trademarks belong to their owners. WebViewGold and appsubmitter.io are made by our team at jocapps GmbH.