96

I noticed that the new Microsoft Edge browser overrides my styles when it detects phone numbers:

<span class="phone">(123)123-1234</span>

See this jsfiddle (must be opened using Microsoft Edge :P).

This sort of intrudes upon the design of the website, and is rather obnoxious. Sure seems like a trait of a successor to IE :/

How can I override or disable this so my website users will not see it?

8
  • I hope this isn't actually caused by malware...
    – karns
    Commented Aug 13, 2015 at 2:06
  • Check add-ons (don't have Edge), but some add-ons caused that behavior in IE-s...
    – sinisake
    Commented Aug 13, 2015 at 2:07
  • 7
    I just today commented about this on Twitter: mobile.twitter.com/scunliffe/status/631484565492625409 at least as far as I can see for now until Microsoft reverses this poor decision you will need to add <meta name="format-detection" content="telephone=no"/> to every single page you have to get rid of this. :-(
    – scunliffe
    Commented Aug 13, 2015 at 2:47
  • 1
    It also gets applied to latitude/longitude numbers like 145.1231321
    – behelit
    Commented Jan 25, 2018 at 0:44
  • 1
    Also the number formats that get highlighted vary with the region setting ("Home location") of the user's PC, so this will affect all users differently! This means when you test your pages your end users might actually see something different despite using the same browser: learn.microsoft.com/en-us/previous-versions/windows/…
    – SharpC
    Commented Apr 9, 2018 at 13:07

4 Answers 4

175

You can get rid of it by adding this meta tag in the header of your pages.

<meta name="format-detection" content="telephone=no">

Microsoft's documentation on this tag.

Hopefully there will be a better way to turn this off globally without bloating pages... Or better yet disable this feature by default.

2
  • Good answer! Would you be able to add a link to docs regarding this, please?
    – karns
    Commented Aug 13, 2015 at 13:11
  • 9
    Stupid design. If someone would like to do that. At least, you could allow an attribute like "detect-phone=true" making it optional, because sometimes there is no need to allow your webapp to do that if its not intended too...
    – Miguel
    Commented Aug 10, 2016 at 11:08
59

If you don't want to disable for an entire page as the selected answer suggests, you can add the following attribute to a specific tag

<p x-ms-format-detection="none">

Reference: https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/dev-guides/dn265018(v=vs.85)#controlling-phone-number-detection

2
  • 9
    I know this is a bit of an old answer, but for anyone looking this up: I had to add this to a parent tag (like the <div> that's a step up from the label or whatever you're using to display the phone number).
    – Dortimer
    Commented Feb 1, 2018 at 19:46
  • +1 to both the answer and Debasertron's comment. Further on the comment, it seems to need to be a block-level parent - I tried with a span, which didn't work, but a div was fine.
    – Masala
    Commented Oct 25, 2018 at 8:41
31

The above answer works perfectly, but disables the ability to have click to call phone numbers (which is a major problem if you are building a responsive site). I have found a better work around to be make the phone number a link. Example:

<a href="tel:888-888-8888">(888) 888-8888</a>

This would then allow you to style the "link" however you want, and the "a" styles in your CSS override the Edge and iPhone styles on the phone number. The only issue with this is it makes the phone number a link for all devices, but I have found this not to be an issue as almost every device has some sort of click to call feature or app included.

2
  • 1
    The best approach in my eyes! Commented Mar 17, 2018 at 23:52
  • 1
    Although, the question is "how to disable", i would have to agree this would be a better response if you are trying to create a responsive site with mobile phone use in mind.
    – JStevens
    Commented Feb 26, 2019 at 3:10
3

I've faced this issue, but with a slightly different use case: The number it's highlighting is not a phone number, so I don't want any special formatting.

For example you might have something like:

<div>The current date/time: May 08 2017 10:44:58 GMT Daylight Time</div>

For me*, Edge will convert 08 2017 10 into a phone number link. Thanks, Edge!

I've found that you can get around this by inserting invisible inline-block element into the middle of the string:

.notel{
  display:inline-block;
  height:0px;
  width:0px;
}
<span class="phone">(763)219-5222</span>
<div>The current date/time: May 08 2017 10:44:58 GMT Daylight Time</div>

<br>
<span class="phone">(763)2<span class="notel"></span>19-5222</span>
<div>The current date/time: May 08 2<span class="notel"></span>017 10:44:58 GMT Daylight Time</div>

I can't see if this works for your phone number as I don't see highlighting in either case. You might need to nudge the positioning of the span.

Incidentally, the fact that you can do this is one of the many reasons you shouldn't copy commands off webpages and into your terminal:

span{
display:inline-block;
height: 0px;
width: 0px;
overflow:hidden;
}
textarea{
  width: 300px;
  height:50px;
}
<div>echo "HELLO" <span>&& wreck this machine</span></div><div>echo "WORLD"</div>

<textarea ></textarea>
<div>
Select, copy and paste above commands into the textarea.
</div>

*I think Edge's highlighting of numbers is regional. Your jsfiddle isn't highlighted for me, but I'm in the UK. Here is seems to highlight numbers that begin with 0.

Not the answer you're looking for? Browse other questions tagged or ask your own question.