Skrivet av Mest:
Det jag menar är att min telefon visar href-värdet när man klickat på länken, och det vore trevligt om den vore schysst formaterad.
OK, har själv aldrig klickat på någon sådan länk i en telefon . Personligen hade jag valt varianten med enbart siffror i `href`-målet, då det känns som att informationen där är till för "maskinen" snarare än "människan", och maskinen bara bryr sig om den faktiska informationen. Presentationen, med bindestreck och mellanrum, sker ju på hemsidan. Jag skulle nog även gått ändå till `+46…` i detta fall (se notis från RFC nedan).
"Begränsningen" kommer ursprunligen från RFC 1738 som beskriver URL-formatet och bl a säger:
Citat:
Thus, only alphanumerics, the special characters "$-_.+!*'(),", and reserved characters used for their reserved purposes may be used unencoded within a URL.
`%20` som substitut för mellanslag ger därmed en giltig URL, men om man tittar vidare på specifikationen för `tel:`-formatet i RFC 3966 så står det bl a:
Citat:
5.1.1. Separators in Phone Numbers
Phone numbers MAY contain visual separators. Visual separators ('visual-separator') merely aid readability and are not used for URI comparison or placing a call.
Although it complicates comparisons, this specification retains visual separators in order to follow the spirit of RFC 2396 [RFC2396], which remarks that "A URI often needs to be remembered by people, and it is easier for people to remember a URI when it consists of meaningful components". Also, ISBN URNs documented in RFC 3187 [RFC3187] use visual separators in a manner similar to this specification.
However, even though ITU-T E.123 [E.123] recommends the use of space characters as visual separators in printed telephone numbers, "tel" URIs MUST NOT use spaces in visual separators to avoid excessive escaping.
E.123 är ITU-T:s rekommendationer för hur man skriver exempelvis telefonnummer. RFC 3966 ger `-.()` som de fyra giltiga visuella separatortecknen (se `visual-separator` i RFC-texten).
Man kan i praktiken, även om det är emot standarden, slänga in `%20` (eller, som du märkt, rena mellanslag trots att det "egentligen" inte är en giltig URL), och jag har svårt att se en klient som feltolkar detta, men det blir lätt lite rörigt att blanda entiteter och signifikanta siffror, vilket också nämns som en motivering till "MUST NOT"-formuleringen ovan.
Man kan även notera att RFC 3966 säger:
Citat:
5.1.4. Global Numbers
Globally unique numbers are identified by the leading "+" character. Global numbers MUST be composed with the country (CC) and national (NSN) numbers as specified in E.123 [E.123] and E.164 [E.164]. Globally unique numbers are unambiguous everywhere in the world and SHOULD be used.
"SHOULD" är bara en rekommendation till skillnad från "MUST", men det pekar också på att det viktiga i länkmålet är att det ska vara otvetydigt läsbart för "maskinen".
Skrivet av Mest:
Du gör en god poäng i att man inte ska lita på att webbplatsen alltid kommer att ligga i samma miljö. Har aldrig tänkt på det. Ska nog ta för vana att lägga in ett charset i allt jag skriver, några extra bytes skadar knappast.
Ja, jag är vanligen av inställningen att kod som inte spelar någon roll ryker, men `charset` tycker jag har existensberättigande som god praxis. Som en bonus får det tyst på W3C:s validator .
———
Tillägg: Såg att det nu såg ut enligt:
<title>Mirello Media | Vår söta webbyrå får en söt hemsida!</title>
<meta charset="UTF-8">
`meta charset` ska generellt vara det första i `<head>`, till och med innan `<title>`. Eftersom `<title>` kan innehålla specialtecken utanför ASCII (vilket den ju faktiskt gör här) så är det lite bakvänt att definiera teckenkodning efter titeln. Om ingen HTTP-teckenkodning specificerats så kommer webbläsaren leta efter `meta charset`, och efter att den hittat direktivet tolka om sidan, så det är bara vinster av att ha det så tidigt som möjligt. Dessutom är ju `charset` en av få taggar som faktiskt har en hård gräns över hur långt in i dokumentet den ska finnas (<1024 B idag, som sagt), så praxis bör vara att lägga den så tidigt som möjligt.
Återigen inget som idag i praktiken bör spela någon större roll, mer än minimala vinster i tolkningstid. Jag hade för mig att W3C under framtagandet av HTML5 någon gång explicit skrev att `meta charset` skulle vara första taggen i `head`, men numera har de bara 1024 B-gränsen kvar i formuleringen. Det är ju dock logiskt mer "korrekt" om teckenkodningen definieras innan den behöver användas i `title`.
Attributvärden är skiftlägesokänsliga i HTML och brukar standardiseras på gemener, så `charset="utf-8"` är vanligare att se än `charset="UTF-8"`, även om man kan argumentera för att det senare egentligen är mer korrekt .