"Mobile" und "Desktop" zu unterscheiden ist absoluter Unsinn -
So würde ich das nicht sehen - ich habe es nur nicht präzise genug formuliert ...
Schlechte Ausrede :)
Find' ich nicht ...! ;-)
Denn wenn du Javascript mal außen vor lässt, gibt es de facto keine Möglichkeit festzustellen, ob der jeweilige User gerade ein Gerät verwendet, welches in der Lage ist, eine Telefonverbindung (aus dem Link) aufzubauen, oder nicht - Punkt!
Einzig kann man "versuchen", serverseitig das entsprechende Gerät (Modell) zu identifizieren und daraus dann den Rückschluss ziehen.
ist ein Netbook jetzt ein Desktop- oder ein Mobilgerät? Ist ein Surface-Tablet jetzt ein Notebook oder ein Tablet? Ist es Mobil oder nicht? Kann man damit telefonieren oder nicht?
... denn letzteres gilt es zu prüfen, was serverseitig durchaus in gewissen Grenzen möglich ist.
Die Grenzen sind etwa so wie die Staatsgrenzen zwischen Italien und Österreich, die seit 1919 (Vertrag von Saint-Germain) nach der Wasserscheide der Gletscher bestimmt werden - da kanns schon mal sein, dass du im Frühling auf eine italienische Hütte gehst und im Sommer aus einer österreichischen rauskommst ohne das Gebäude je verlassen zu haben :p
Danke für den Geschichtsunterricht - allerdings verstehe ich den Zusammenhang nicht.
Die einzig halbwegs vernünftige Lösung ist
Nein! Denn grundsätzlich steht man hier wieder vor der generellen Frage:
"Progressive Enhancement vs. Graceful Degredation"Das ist eine Akademische Frage - ob man die Links nun erst später hinzufügt oder nachträglich entfert hat nichts damit zu tun ob wie man erkennt, ob ein Client dieses Feature potentiell unterstützt.
Auch das sehe ich etwas anders ... ;-)
Für mich hat das eher etwas mit "Usability" 8im weiteren Sinn) zu tun, als "nur" eine akademische Frage zu sein. Und wenn überhaupt, dann ist es noch eine Frage, welcher Philosophie man sich eher anschließt.
Die Lösung kann also so aussehen:
Es gibt Links mit dem tel-Schema die durch JavaScript nachträglich wieder entfernt werden, wenn das tel-Schema _explizit_ nicht registriert ist - in anderen Fällen "ist registriert", "weiß nicht", "kann nicht ermittelt werden" oder "nicht sicher" bleiben sie stehen und führen ggf. zu Fehlerseiten.
Das wäre dann eine (der möglichen) Lösung(en) für graceful Degredation ...!
Wenn man progressive enhancement nimmt, wirds halt nachträglich hinzugefügt - wo ist das Problem?
Kein JS ...! :-P
Übrigens gibt es einen weiteren der "berüchtigten" Meta-Tags, der sowohl unter Android, als auch iOS die automatische Erkennung von Telefonnummern deaktiviert:
<meta name="format-detection" content="telephone=no" />
Das ist nicht richtig - format-detection ist ein Webkit-Feature welches die Erkennung in _bestimmten_ Webkit-Browsern unterdrückt, damit schließst du schon mal potentiell Opera Mini aus, ältere Opera-Mobile-Versionen und Firefox ohnehin.
Gut, dann formuliere ich es anders: Damit verhindert man die automatische Erkennung von (evt.) Telefonnummern unter iOS im Mobile Safari.
BTW: AFAIK gibt es dieses Feature eh in keinem Android Browser.
Ich sag' es ja immer wieder: Vieles wäre wesentlich einfacher, wenn die schei.. Browser gewisse Infos per (X)-HTTP-Header liefern würden ...!
Was haben derartige Informationen im HTTP-Header verloren? Solche Informationen müssen nachträglich per API abgerufen werden können,
Was für eine API?
wenn man sie tatsächlich benötigt aber nicht schon pauschal per HTTP zumal ja nichtmal gewährleistet ist, dass ein Dokument überhaupt per HTTP übertragen wird.
Deine "Spezialfälle" sind mir ehrlich gesagt wurscht! Meine Webseiten werden immer per HTTP übertragen.
Und ich finde das bisherige Konzept, jedem erstmal pauschal "Alles" auszuliefern, damit sich dann der jeweilige Client das raussuchen kann, womit er auch etwas anfangen kann, ist langsam aber sicher "überholt", bzw. verursacht viel zuviel unnötigen Traffic.
Wenn der anfragende Browser dem Server bereits mitteilen würde, welche "Features" er denn beherrscht, dann könnte dieser ihm auch nur das ausliefern, was gebraucht wird. Insofern sehe ich da durchaus einige Vorteile, welche solche Infos im Header enthalten wären.
Deine Javascript Basteleien sind imho nur "Krücken", um ein Problem an einer Stelle zu lösen, die dafür denkbar ungeeignet ist - immer vorausgesetzt JS ist überhaupt verfügbar.
Die Telefonnummern sind ja nur ein kleiner Teil (SMS, Kontakte etc.) ...!
Und dann gibt es auch Geräte, die zwar durchaus Daten und SMS beherrschen, aber keine Telefonverbindungen.
Gruß Gunther