Apple includes a powerful developer testing suite inside iOS that allows engineers and web developers to preview experimental WebKit technologies directly on physical iPhones. Known as Feature Flags (previously termed Experimental Features), these toggles expose upcoming web standards, performance optimisations, and security sandboxing protocols long before they are enabled for general consumers. Whether you are developing Progressive Web Apps, testing advanced CSS specifications, or assessing cutting-edge WebGL graphics, configuring these flags allows you to evaluate site performance under real mobile hardware constraints.
Because feature flags alter core WebKit rendering behaviours and JavaScript parsing rules, knowing how to navigate the settings hierarchy, toggle specific technologies, and restore default parameters is essential for effective mobile web debugging. For developers interested in broader cross-device testing, you can also consult our guides on testing experimental feature flags in Safari on macOS and enabling the Develop menu and Web Inspector in Safari.
Navigating to Feature Flags in iOS Settings
WebKit Feature Flags are integrated directly into the iOS system settings rather than inside the Safari app interface. To access the developer toggles on your iPhone, follow these steps:
- Open the Settings app on your iPhone.
- Scroll down the list and tap on Apps (or tap directly on Safari on iOS 17 and earlier versions).
- From the list of installed applications, select Safari.
- Scroll to the absolute bottom of the Safari settings menu and tap on Advanced.
- At the bottom of the Advanced screen, tap on Feature Flags.
iOS displays an extensive alphabetical list of individual WebKit switches spanning networking protocols, CSS enhancements, JavaScript engine optimisations, and media decoding capabilities.
Locating and Enabling Specific WebKit Technologies
The Feature Flags list contains dozens of individual configuration toggles. Because the list is extensive, locating specific technologies requires methodical filtering:
- Use the search bar at the very top of the Feature Flags screen to type the name of the API or standard you wish to test (such as WebGPU, Fullscreen, Web Locks, or Service Worker).
- Tap the toggle switch adjacent to the target feature flag to switch it from off (grey) to on (green).
- If the switch is already enabled by default in your current iOS build, modifying it forces an override state. Overridden flags are visually indicated with distinct indicator styling in modern iOS releases.
- Force-close Safari by swiping up from the bottom of your screen to open the App Switcher, swiping up on the Safari card, and then reopening Safari to ensure the WebKit rendering process reinitialises with the updated flag state.
Testing Experimental Features with Web Inspector
To inspect console logs, network events, and DOM tree modifications triggered by newly enabled feature flags, you can tether your iPhone to a Mac running Safari:
- On your iPhone, ensure Web Inspector is active by returning to Settings > Safari > Advanced and turning on the Web Inspector toggle.
- Connect your iPhone to your Mac using an official USB or Lightning cable, and unlock your iPhone when prompted to tap Trust This Computer.
- Open Safari on your Mac and ensure the Develop menu is enabled via Safari > Settings > Advanced > Show features for web developers.
- Click on the Develop menu in the Mac menu bar, hover over your iPhone’s name, and click on the webpage currently open in mobile Safari to open a full remote inspection session.
Resetting Feature Flags to Default Settings
Enabling unstable or experimental flags can occasionally cause rendering glitches, video playback failures, or unexpected webpage crashes on standard consumer websites. If you encounter instability or finish a testing sprint, restoring all flags to their factory defaults is straightforward:
- Return to Settings > Safari > Advanced > Feature Flags.
- Scroll down to the bottom of the Feature Flags page.
- Tap Reset All to Defaults.
- A confirmation prompt appears. Tap Reset All to Defaults again to clear all custom overrides and revert your iPhone to the stock WebKit configuration.