{"id":5765,"date":"2016-03-22T18:32:00","date_gmt":"2016-03-22T17:32:00","guid":{"rendered":"https:\/\/www.creativejuiz.fr\/blog\/en\/?p=5765"},"modified":"2016-03-22T18:32:42","modified_gmt":"2016-03-22T17:32:42","slug":"fast-tap-remove-350ms-delay-ios","status":"publish","type":"post","link":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios","title":{"rendered":"Fast-tap: remove the 350ms delay on iOS"},"content":{"rendered":"<p>You certainly know that weird feature on your smartphone that blocks your actions during a little delay (350ms) when you tap an item on your screen? Some JS scripts can be implemented to avoid that delay, but often without any side effect\u2026 Today, it&#8217;s possible to do it with only CSS!<!--more--><\/p>\n<h2>Some explanations<\/h2>\n<p>This delay has been added to let your device detect a double-tap on the screen, et to let the guy who taps, the time resquested to tap \ud83d\ude42<\/p>\n<p>But, sometimes, when that double-tap action is not used by our interface it becomes embarrassing especially when your user is waiting for a real reactivity from your web site or your application, and <span id=\"result_box\" class=\"short_text\" lang=\"en\">particularly in the context <span class=\"\">of JS actions with no need in page reload.<br \/>\n<\/span><\/span><\/p>\n<h2>Remove the 350ms delay on iOS<\/h2>\n<p>Sorry for this iOS-only tips, but I found nothing for Android a this time.<\/p>\n<p>Since iOS 9.3 (update of the day before this post), it&#8217;s possible to remove this delay in two ways, one more accessibility-friendly than the other.<\/p>\n<h3>Via the viewport meta<\/h3>\n<p>Using a meta-viewport containing a <code>width=device-width<\/code> or a <code>user-scalable=no<\/code>, you automagically remove the 350ms delay. Example:<\/p>\n<pre class=\"code\"><code class=\"language-markup\">&lt;meta name=\"viewport\" content=\"width=device-width\"&gt;<\/code><\/pre>\n<p>The accessibility issue arrives using <code>user-scalable=no<\/code>. Void the user of the benefit of a zoom on a website is never a good point. Avoid this value at all costs.<\/p>\n<h3>Via the CSS property <code>touch-action: manipulation<br \/>\n<\/code><\/h3>\n<p>That property is a part of the <a href=\"https:\/\/www.w3.org\/TR\/pointerevents\/#the-touch-action-css-property\">Pointer Events<\/a> specifications.<br \/>\nBriefly, that CSS property has effect when a tap action is done by the user. Values proposed for that property allow free interpretation by the OS, or more restrictive ones depending on which one you choose.<\/p>\n<pre class=\"code\"><code class=\"language-css\">a {\r\n\ttouch-action: manipulation;\r\n}<\/code><\/pre>\n<p>The <code>manipulation<\/code> value define that the tap action made by the user exists only to make the page scroll or to zoom on it. Other actions whom could be defined by the <code>auto<\/code> value won&#8217;t be done.<\/p>\n<p>It&#8217;s a blurry definition, than OS are free to make various actions depending on elements and depending on its own features.<\/p>\n<p>On a button or anchor element, or on a trigger defined with JS, the 350ms delay is now removed. It&#8217;s already working on this blog, try it by clicking on menu or sidebar buttons. They are super reactive.<\/p>\n<p>I hope this tips will help you \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You certainly know that weird feature on your smartphone that blocks your actions during a little delay (350ms) when you tap an item on your screen? Some JS scripts can be implemented to avoid that delay, but often without any side effect\u2026 Today, it&#8217;s possible to do it with only CSS!<\/p>\n","protected":false},"author":4,"featured_media":5761,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","footnotes":""},"categories":[652,650],"tags":[221,678,518],"coauthors":[597],"class_list":["post-5765","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-css3","category-development","tag-ios","tag-tips","tag-viewport"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"You certainly know that weird feature on your smartphone that blocks your actions during a little delay (350ms) when you tap an item on your screen? Some JS scripts can be implemented to avoid that delay, but often without any side effect\u2026 Today, it&#039;s possible to do it with only CSS! Some explanations This delay\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Geoffrey Crofte\"\/>\n\t<meta name=\"keywords\" content=\"ios,tips,viewport,css \/ css3,development\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#article\",\"name\":\"Fast-tap: remove the 350ms delay on iOS\",\"headline\":\"Fast-tap: remove the 350ms delay on iOS\",\"author\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/auteur\\\/geoffrey#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/03\\\/fast-tap-icon.png\",\"width\":200,\"height\":200},\"datePublished\":\"2016-03-22T18:32:00+01:00\",\"dateModified\":\"2016-03-22T18:32:42+01:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#webpage\"},\"articleSection\":\"CSS \\\/ CSS3, Development, iOS, tips, viewport, CreativeJuiz\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en#listItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/theme\\\/development#listItem\",\"name\":\"Development\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/theme\\\/development#listItem\",\"position\":2,\"name\":\"Development\",\"item\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/theme\\\/development\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#listItem\",\"name\":\"Fast-tap: remove the 350ms delay on iOS\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en#listItem\",\"name\":\"Accueil\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#listItem\",\"position\":3,\"name\":\"Fast-tap: remove the 350ms delay on iOS\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/theme\\\/development#listItem\",\"name\":\"Development\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/#person\",\"name\":\"Geoffrey Crofte\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c9e2509009badcdf656faf5019ef0f567c4dd4e6e49beca151c21d23995db473?s=96&d=monsterid&r=g\",\"width\":96,\"height\":96,\"caption\":\"Geoffrey Crofte\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/auteur\\\/geoffrey#author\",\"url\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/auteur\\\/geoffrey\",\"name\":\"Geoffrey Crofte\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c9e2509009badcdf656faf5019ef0f567c4dd4e6e49beca151c21d23995db473?s=96&d=monsterid&r=g\",\"width\":96,\"height\":96,\"caption\":\"Geoffrey Crofte\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#webpage\",\"url\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios\",\"name\":\"Fast-tap: remove the 350ms delay on iOS\",\"description\":\"You certainly know that weird feature on your smartphone that blocks your actions during a little delay (350ms) when you tap an item on your screen? Some JS scripts can be implemented to avoid that delay, but often without any side effect\\u2026 Today, it's possible to do it with only CSS! Some explanations This delay\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/auteur\\\/geoffrey#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/auteur\\\/geoffrey#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/03\\\/fast-tap-icon.png\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios\\\/#mainImage\",\"width\":200,\"height\":200},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/development\\\/fast-tap-remove-350ms-delay-ios#mainImage\"},\"datePublished\":\"2016-03-22T18:32:00+01:00\",\"dateModified\":\"2016-03-22T18:32:42+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/\",\"name\":\"Creative Juiz\",\"description\":\"HTML5, CSS3, JavaScript, WordPress Tutorials\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.creativejuiz.fr\\\/blog\\\/en\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Fast-tap: remove the 350ms delay on iOS","description":"You certainly know that weird feature on your smartphone that blocks your actions during a little delay (350ms) when you tap an item on your screen? Some JS scripts can be implemented to avoid that delay, but often without any side effect\u2026 Today, it's possible to do it with only CSS! Some explanations This delay","canonical_url":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios","robots":"max-image-preview:large","keywords":"ios,tips,viewport,css \/ css3,development","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#article","name":"Fast-tap: remove the 350ms delay on iOS","headline":"Fast-tap: remove the 350ms delay on iOS","author":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/auteur\/geoffrey#author"},"publisher":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2016\/03\/fast-tap-icon.png","width":200,"height":200},"datePublished":"2016-03-22T18:32:00+01:00","dateModified":"2016-03-22T18:32:42+01:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#webpage"},"isPartOf":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#webpage"},"articleSection":"CSS \/ CSS3, Development, iOS, tips, viewport, CreativeJuiz"},{"@type":"BreadcrumbList","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.creativejuiz.fr\/blog\/en#listItem","position":1,"name":"Accueil","item":"https:\/\/www.creativejuiz.fr\/blog\/en","nextItem":{"@type":"ListItem","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/theme\/development#listItem","name":"Development"}},{"@type":"ListItem","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/theme\/development#listItem","position":2,"name":"Development","item":"https:\/\/www.creativejuiz.fr\/blog\/en\/theme\/development","nextItem":{"@type":"ListItem","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#listItem","name":"Fast-tap: remove the 350ms delay on iOS"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.creativejuiz.fr\/blog\/en#listItem","name":"Accueil"}},{"@type":"ListItem","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#listItem","position":3,"name":"Fast-tap: remove the 350ms delay on iOS","previousItem":{"@type":"ListItem","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/theme\/development#listItem","name":"Development"}}]},{"@type":"Person","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/#person","name":"Geoffrey Crofte","image":{"@type":"ImageObject","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/c9e2509009badcdf656faf5019ef0f567c4dd4e6e49beca151c21d23995db473?s=96&d=monsterid&r=g","width":96,"height":96,"caption":"Geoffrey Crofte"}},{"@type":"Person","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/auteur\/geoffrey#author","url":"https:\/\/www.creativejuiz.fr\/blog\/en\/auteur\/geoffrey","name":"Geoffrey Crofte","image":{"@type":"ImageObject","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/c9e2509009badcdf656faf5019ef0f567c4dd4e6e49beca151c21d23995db473?s=96&d=monsterid&r=g","width":96,"height":96,"caption":"Geoffrey Crofte"}},{"@type":"WebPage","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#webpage","url":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios","name":"Fast-tap: remove the 350ms delay on iOS","description":"You certainly know that weird feature on your smartphone that blocks your actions during a little delay (350ms) when you tap an item on your screen? Some JS scripts can be implemented to avoid that delay, but often without any side effect\u2026 Today, it's possible to do it with only CSS! Some explanations This delay","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/#website"},"breadcrumb":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#breadcrumblist"},"author":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/auteur\/geoffrey#author"},"creator":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/auteur\/geoffrey#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2016\/03\/fast-tap-icon.png","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios\/#mainImage","width":200,"height":200},"primaryImageOfPage":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/development\/fast-tap-remove-350ms-delay-ios#mainImage"},"datePublished":"2016-03-22T18:32:00+01:00","dateModified":"2016-03-22T18:32:42+01:00"},{"@type":"WebSite","@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/#website","url":"https:\/\/www.creativejuiz.fr\/blog\/en\/","name":"Creative Juiz","description":"HTML5, CSS3, JavaScript, WordPress Tutorials","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.creativejuiz.fr\/blog\/en\/#person"}}]}},"aioseo_meta_data":{"post_id":"5765","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[],"defaultGraph":"","defaultPostTypeGraph":""},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-21 17:17:45","updated":"2025-07-09 23:49:02","seo_analyzer_scan_date":null},"_links":{"self":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/posts\/5765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/comments?post=5765"}],"version-history":[{"count":0,"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/posts\/5765\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/media\/5761"}],"wp:attachment":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/media?parent=5765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/categories?post=5765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/tags?post=5765"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/en\/wp-json\/wp\/v2\/coauthors?post=5765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}