hcard-faq: Difference between revisions
m (removed issues - FAQ is not the place for issues) |
AndyMabbett (talk | contribs) (Add question marks, remove weasil-words, copy edits, see also) |
||
Line 5: | Line 5: | ||
<h2> Q&A </h2> | <h2> Q&A </h2> | ||
=== Should I use ADDRESS for hCards === | === Should I use ADDRESS for hCards? === | ||
''Should I use the more semantic <code><nowiki><address></nowiki></code> element for my hCards?'' | ''Should I use the more semantic <code><nowiki><address></nowiki></code> element for my hCards?'' | ||
* Yes the <code><nowiki><address></nowiki></code> element is more semantic, but it is ''too'' specifically semantic for most hCard uses. The poorly named <code><nowiki><address></nowiki></code> element really means <contact-info-for-this-web-page>. The [http://www.w3.org/TR/html401/struct/global.html#h-7.5.6 HTML4 definition of the ADDRESS element] says it is used "to supply contact information for a document or a major part of a document such as a form." Therefore <code><nowiki><address></nowiki></code> should be used for an hCard ONLY IF that hCard represents the contact information for the page or major part thereof. One example of such a usage is on [http://tantek.com/log/ Tantek's blog]. Another way of saying this is the following two statements: Every <address> on a page SHOULD be an hCard. But not every hCard should be an <code><nowiki><address></nowiki></code>. <br /> In short, '''DO NOT''' use <code><nowiki><address></nowiki></code> to markup addresses in general. Only use it to markup the contact information for the page (or major part thereof), and when doing so, use it to markup ''the entire'' contact information (via <address class="vcard">), not just the address of the contact. | * Yes the <code><nowiki><address></nowiki></code> element is more semantic, but it is ''too'' specifically semantic for most hCard uses. The poorly named <code><nowiki><address></nowiki></code> element really means <contact-info-for-this-web-page>. The [http://www.w3.org/TR/html401/struct/global.html#h-7.5.6 HTML4 definition of the ADDRESS element] says it is used "to supply contact information for a document or a major part of a document such as a form." Therefore <code><nowiki><address></nowiki></code> should be used for an hCard ONLY IF that hCard represents the contact information for the page or major part thereof. One example of such a usage is on [http://tantek.com/log/ Tantek's blog]. Another way of saying this is the following two statements: Every <address> on a page SHOULD be an hCard. But not every hCard should be an <code><nowiki><address></nowiki></code>. <br /> In short, '''DO NOT''' use <code><nowiki><address></nowiki></code> to markup addresses in general. Only use it to markup the contact information for the page (or major part thereof), and when doing so, use it to markup ''the entire'' contact information (via <address class="vcard">), not just the address of the contact. | ||
=== Why is url property necessary === | === Why is url property necessary? === | ||
''Why is it necessary to put class name "url" on URL elements in the hCard when those hyperlinks already start with "http://", and that is enough to distinguish them from email links?'' | ''Why is it necessary to put class name "url" on URL elements in the hCard when those hyperlinks already start with "http://", and that is enough to distinguish them from email links?'' | ||
* The classname "url" is necessary to explicitly distinguish hyperlinks that are URL elements for the hCard, from other hyperlinks that may be related to the item or otherwise in the same containing element but should not be included in the hCard. Common links that may appear in the document but not be contact information are action related links (download data, add to friends list, etc.) contact hyperlinks (email, internal site messaging, autodialers), as well as hyperlinks to photos, or other random hyperlinks that happen to be inside the hCard. | * The classname "url" is necessary to explicitly distinguish hyperlinks that are URL elements for the hCard, from other hyperlinks that may be related to the item or otherwise in the same containing element but should not be included in the hCard. Common links that may appear in the document but not be contact information are action related links (download data, add to friends list, etc.) contact hyperlinks (email, internal site messaging, autodialers), as well as hyperlinks to photos, or other random hyperlinks that happen to be inside the hCard. | ||
=== How do I support an existing vCard URL === | === How do I support an existing vCard URL? === | ||
''I already have a vCard that I keep up-to-date. I don't want to change any references to it because it might break something else, what can I do?'' | ''I already have a vCard that I keep up-to-date. I don't want to change any references to it because it might break something else, what can I do?'' | ||
* You can use .HTACCESS to rewrite links to your vCard to a webservice that converts a page to the vCard dynamically, to do this you need to add something similar to your .htaccess file | * You can use .HTACCESS to rewrite links to your vCard to a webservice that converts a page to the vCard dynamically, to do this you need to add something similar to your .htaccess file | ||
Line 27: | Line 27: | ||
</pre> | </pre> | ||
=== What are plural hCard properties === | === What are plural hCard properties? === | ||
''Is there a list of all hCard properties which can be plural?''<br /> | ''Is there a list of all hCard properties which can be plural?''<br /> | ||
''Is there a list of all the properties which can have multiple instances?'' | ''Is there a list of all the properties which can have multiple instances?'' | ||
Line 39: | Line 39: | ||
* Else (if RFC 2426 is *not* explicit) then the property is plural. | * Else (if RFC 2426 is *not* explicit) then the property is plural. | ||
=== What does FN stand for === | === What does FN stand for? === | ||
''What does FN stand for?'' | ''What does FN stand for?'' | ||
Line 46: | Line 46: | ||
* The reasoning behind this seems to be that, while N gives us a structured name, FN gives us the human-readable, formatted name which is assembled from its structured parts in a culturally dependant way. | * The reasoning behind this seems to be that, while N gives us a structured name, FN gives us the human-readable, formatted name which is assembled from its structured parts in a culturally dependant way. | ||
=== How is gender represented === | === How is gender represented? === | ||
''How do you represent gender in hCard?'' | ''How do you represent gender in hCard?'' | ||
* There is no GENDER property in [http://www.ietf.org/rfc/rfc2426.txt vCard RFC2426]. [[hcard|hCard]] is following the schema from vCard for interoperability reasons. | * There is no GENDER property in [http://www.ietf.org/rfc/rfc2426.txt vCard RFC2426]. [[hcard|hCard]] is following the schema from vCard for interoperability reasons. It is possible to represent gender implicitly in the honorific-prefix field, e.g. Mr. for male, and Ms. for female: | ||
<pre><nowiki> | <pre><nowiki> | ||
<span class="honorific-prefix">Mr.</span> | <span class="honorific-prefix">Mr.</span> | ||
Line 57: | Line 57: | ||
</nowiki></pre> | </nowiki></pre> | ||
This approach does have the limitation that "Mr." and "Ms." (or "Miss"/ "Mrs.") | This approach does have the limitation that "Mr." and "Ms." (or "Miss"/ "Mrs.") conflict with a higher-ranking, gender-neutral honorific, such as "Dr." or "Rev." for the person. | ||
Note that there is also a [http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/vcard_name.asp page on MSDN that mentions vCard and "gender"]. Not sure what to make of that. | Note that there is also a [http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/vcard_name.asp page on MSDN that mentions vCard and "gender"]. Not sure what to make of that. | ||
Line 63: | Line 63: | ||
Gender could be represented with a [[genealogy-formats|genealogical microformat]], but that seems like overkill. | Gender could be represented with a [[genealogy-formats|genealogical microformat]], but that seems like overkill. | ||
Instead, keep it simple! | Instead, keep it simple! Where appropriate, use tags/categories to tag people's hCards with their gender, "male", "female", or any other tag you feel is appropriate. See [http://en.wikipedia.org/wiki/Gender_identity gender identity] for more details on the topic. | ||
=== Can a hCard contain extra elements === | See also [[vcard-suggestions#Gender]]. | ||
=== Can a hCard contain extra elements? === | |||
''Is it OK for an hCard node to contain extra elements?'' | ''Is it OK for an hCard node to contain extra elements?'' | ||
* Yes, parsers will ignore anything they don't understand. | * Yes, parsers will ignore anything they don't understand. | ||
=== Can a GEO be inferred from an ADR in an hCard === | === Can a GEO be inferred from an ADR in an hCard? === | ||
''Can I automatically add GEO from an address when | ''Can I automatically add GEO from an address when transforming an hCard to vCard if it is not present?'' | ||
* No, an address represents a building which is a polygon, whereas a GEO only represents a single point | * No, an address represents a building which is a polygon, whereas a GEO only represents a single point | ||
=== X2V | === Why doesn't X2V convert email with name as plain text? === | ||
''X2V doesn't convert my email address correctly, it is in the form href="FirstName LastName <Email@example.com>"'' | ''X2V doesn't convert my email address correctly, it is in the form href="FirstName LastName <Email@example.com>"'' | ||
* While that form of email address works for some programs such as outlook, it is not a valid mailto: value (see [http://www.faqs.org/rfcs/rfc2368.html RFC2368]) the FirstName and LastName should be omitted. | * While that form of email address works for some programs such as outlook, it is not a valid mailto: value (see [http://www.faqs.org/rfcs/rfc2368.html RFC2368]) the FirstName and LastName should be omitted. | ||
Line 99: | Line 101: | ||
</div> | </div> | ||
=== What hCard properties are required === | === What hCard properties are required? === | ||
''What properties are required in an hCard?'' | ''What properties are required in an hCard?'' | ||
* The only required properties are 'fn' (the formatted name) and 'n' (the structured name), but 'n' can under certain circumstances be inferred from the <code>fn</code> property. See the [[hcard#Implied_.22n.22_Optimization|Implied N Optimization]] for details. | * The only required properties are 'fn' (the formatted name) and 'n' (the structured name), but 'n' can under certain circumstances be inferred from the <code>fn</code> property. See the [[hcard#Implied_.22n.22_Optimization|Implied N Optimization]] for details. | ||
=== Does N property require all | === Does N property require all sub-properties? === | ||
''If I use the 'n' property, do I have to use ALL of the sub-properties?'' | ''If I use the 'n' property, do I have to use ALL of the sub-properties?'' | ||
* No, You can use as many or as few as you need to mark-up the name, but at a minimum you should at least use the 'given-name' and 'family-name' sub-properties if at all possible. If all you have is a nickname/handle/userid, then consider simply marking it up as an 'fn' property and taking advantage of the [http://microformats.org/wiki/hcard#Implied_.22nickname.22_Optimization Implied "nickname" Optimization]. | * No, You can use as many or as few as you need to mark-up the name, but at a minimum you should at least use the 'given-name' and 'family-name' sub-properties if at all possible. If all you have is a nickname/handle/userid, then consider simply marking it up as an 'fn' property and taking advantage of the [http://microformats.org/wiki/hcard#Implied_.22nickname.22_Optimization Implied "nickname" Optimization]. | ||
=== Do FN and N need to be on same element === | === Do FN and N need to be on same element? === | ||
''Do the 'fn' and 'n' properties have to be on the same element?'' | ''Do the 'fn' and 'n' properties have to be on the same element?'' | ||
* No, you can have two separate elements, for example: | * No, you can have two separate elements, for example: | ||
Line 123: | Line 125: | ||
</nowiki></pre> | </nowiki></pre> | ||
=== How do you convert a vCard to an hCard === | === How do you convert a vCard to an hCard? === | ||
''Is there a way to convert a vCard to an hCard?'' | ''Is there a way to convert a vCard to an hCard?'' | ||
* There is no canonical conversion from a vCard to an hCard because you can construct an hCard in many different ways while expressing the same semantics. If you would like to recommend a suggested template hCard to use when displaying vCards in a browser, please propose it to the [http://microformats.org/discuss mailing list]. | * There is no canonical conversion from a vCard to an hCard because you can construct an hCard in many different ways while expressing the same semantics. If you would like to recommend a suggested template hCard to use when displaying vCards in a browser, please propose it to the [http://microformats.org/discuss mailing list]. | ||
=== Are descendant elements recognized in a microformat === | === Are descendant elements recognized in a microformat? === | ||
''Are descendants recognized in a microformat property?'' | ''Are descendants recognized in a microformat property?'' | ||
* Yes, for example: | * Yes, for example: | ||
Line 135: | Line 137: | ||
The output would be "United States of America". | The output would be "United States of America". | ||
=== Do properties like TEL use all descendants === | === Do properties like TEL use all descendants? === | ||
''Do properties like TEL use all descendants?'' e.g. <pre><nowiki><span class="tel"><span class="type">Home</span>:<span class="value">+1.234.567.8900</span></span></nowiki></pre><br>''Shouldn't that output be "TEL:Home: +1.234.567.8900"?'' | ''Do properties like TEL use all descendants?'' e.g. <pre><nowiki><span class="tel"><span class="type">Home</span>:<span class="value">+1.234.567.8900</span></span></nowiki></pre><br>''Shouldn't that output be "TEL:Home: +1.234.567.8900"?'' | ||
* No. class="value" is used to denote a sub-element which is used for the value of the property. See [[hcard#Value_excerpting|Value excerpting]] for more details. | * No. class="value" is used to denote a sub-element which is used for the value of the property. See [[hcard#Value_excerpting|Value excerpting]] for more details. | ||
=== Can you have multiple value elements === | === Can you have multiple value elements? === | ||
''Can you have multiple class="value" elements inside a property and what happens to them?'' | ''Can you have multiple class="value" elements inside a property and what happens to them?'' | ||
* Sure, for example: | * Sure, for example: | ||
Line 145: | Line 147: | ||
</nowiki></code><br> would output: "+12345678900". | </nowiki></code><br> would output: "+12345678900". | ||
=== Can you mix properties and the root class name === | === Can you mix properties and the root class name? === | ||
''<span id="nesting-properties">Can you put properties on the same element as the root class for a microformat? E.g. class="vcard fn"?</span>'' | ''<span id="nesting-properties">Can you put properties on the same element as the root class for a microformat? E.g. class="vcard fn"?</span>'' | ||
* No, for several reasons: | * No, for several reasons: | ||
Line 151: | Line 153: | ||
** It will result in more confusion for parsers which may be parsing nested microformats. | ** It will result in more confusion for parsers which may be parsing nested microformats. | ||
=== Can you mix a property and its | === Can you mix a property and its sub-properties? === | ||
''Can singular sub-properties be mixed with parents?'' | ''Can singular sub-properties be mixed with parents?'' | ||
* No, all sub-properties MUST be on elements inside their parents. | * No, all sub-properties MUST be on elements inside their parents. | ||
=== Can you use query strings on email === | === Can you use query strings on email? === | ||
''What happened to the Query String on my email address?'' | ''What happened to the Query String on my email address?'' | ||
* Query strings are removed from email addresses because they are not valid for importing to vCards | * Query strings are removed from email addresses because they are not valid for importing to vCards | ||
=== Are ADR and TEL types case sensitive === | === Are ADR and TEL types case sensitive? === | ||
''Is the list of possible types for an ADR and TEL case sensitive?'' | ''Is the list of possible types for an ADR and TEL case sensitive?'' | ||
* No, enumerated values are case- | * No, enumerated values are case-'''in'''sensitive, therefore Home, home, HOME, etc. are all equivalent. | ||
=== How does GEO work with ABBR === | === How does GEO work with ABBR? === | ||
''What happens to the GEO sub-properties when GEO is used with ABBR?'' | ''What happens to the GEO sub-properties when GEO is used with ABBR?'' | ||
* The GEO property can be represented two different ways: | * The GEO property can be represented two different ways: | ||
Line 178: | Line 180: | ||
When used with an <abbr> element the latitude and longitude are seperated by a semicolon. | When used with an <abbr> element the latitude and longitude are seperated by a semicolon. | ||
=== Why is the root class name vcard === | === Why is the root class name vcard? === | ||
''Why is the root class="vcard" and not 'hcard'?'' | ''Why is the root class="vcard" and not 'hcard'?'' | ||
* The reason is historical, hCard is based off of the vCard specification. | * The reason is historical, hCard is based off of the vCard specification. | ||
=== How do you | === How do you mark up a 'phone extension? === | ||
''How do I mark | ''How do I mark up a 'phone extension in hCard?'' | ||
There doesn't seem to be a way to declare a telephone extension in the vCard RFC 2426 spec, the suggested way is currently: | There doesn't seem to be a way to declare a telephone extension in the vCard RFC 2426 spec, the suggested way is currently: | ||
<pre><nowiki> | <pre><nowiki> | ||
Line 216: | Line 218: | ||
</nowiki></pre> | </nowiki></pre> | ||
=== How do you encode IM accounts === | === How do you encode IM accounts? === | ||
''How do I encode my IM account in hCard?'' | ''How do I encode my IM account in hCard?'' | ||
* see [[hcard-examples#New_Types_of_Contact_Info|hCard examples: New Types of Contact Info]] | * see [[hcard-examples#New_Types_of_Contact_Info|hCard examples: New Types of Contact Info]] | ||
=== Can you hCard the deceased === | === Can you hCard the deceased? === | ||
''How do you make an hCard for the deceased?'' | ''How do you make an hCard for the deceased?'' | ||
* vCards were never designed to handle date-of-death, please refer to the biographical or [[genealogy-formats]] microformat | * vCards were never designed to handle date-of-death, please refer to the biographical or [[genealogy-formats]] microformat | ||
*See also [[vcard-suggestions#Deceased]] | |||
=== Any plans for xparams === | === Any plans for xparams? === | ||
''Are there plans to include x-parameters in future versions of hCard?'' | ''Are there plans to include x-parameters in future versions of hCard?'' | ||
* No. The problem is that each of these x-parameters are vendor specific and are not part of the RFC. Secondly, there is no way to be 100% sure that 'x-foobar' is not just a content-specific HTML class name that the publisher is using for CSS styling. | * No. The problem is that each of these x-parameters are vendor specific and are not part of the RFC. Secondly, there is no way to be 100% sure that 'x-foobar' is not just a content-specific HTML class name that the publisher is using for CSS styling. | ||
=== What is a word in implied optimizations? === | |||
=== What is a word in implied optimizations === | |||
''What constitutes a "word" for the purpose of 'implied-n optimization'?'' | ''What constitutes a "word" for the purpose of 'implied-n optimization'?'' | ||
* "N" can be implied from "FN" when the content of "FN" is broken into two "words" separated by whitespace. For this purpose, a "word" is any sequence of non-whitespace characters including but not limited to low- and high-range alphanumerics and punctuation. A "word" can be characterised by the following regular expression: <pre><nowiki>/\S+/</nowiki></pre> | * "N" can be implied from "FN" when the content of "FN" is broken into two "words" separated by whitespace. For this purpose, a "word" is any sequence of non-whitespace characters including but not limited to low- and high-range alphanumerics and punctuation. A "word" can be characterised by the following regular expression: <pre><nowiki>/\S+/</nowiki></pre> | ||
=== How do you create non English tooltips === | === How do you create non English tooltips? === | ||
''My website is not in English and i want the tooltips to be in my native language'' | ''My website is not in English and i want the tooltips to be in my native language'' | ||
* Properties such as class="type" require an enumerated list of English words. It is possible to use your native language for the displaying tooltip, but still use the English work for the class="type" without it being shown. | * Properties such as class="type" require an enumerated list of English words. It is possible to use your native language for the displaying tooltip, but still use the English work for the class="type" without it being shown. |
Revision as of 19:20, 24 November 2006
hCard FAQ
This page is for documenting Q&A about hCard. If you have a new question to ask, Please consider first asking your question on the microformats-discuss list.
Q&A
Should I use ADDRESS for hCards?
Should I use the more semantic <address>
element for my hCards?
- Yes the
<address>
element is more semantic, but it is too specifically semantic for most hCard uses. The poorly named<address>
element really means <contact-info-for-this-web-page>. The HTML4 definition of the ADDRESS element says it is used "to supply contact information for a document or a major part of a document such as a form." Therefore<address>
should be used for an hCard ONLY IF that hCard represents the contact information for the page or major part thereof. One example of such a usage is on Tantek's blog. Another way of saying this is the following two statements: Every <address> on a page SHOULD be an hCard. But not every hCard should be an<address>
.
In short, DO NOT use<address>
to markup addresses in general. Only use it to markup the contact information for the page (or major part thereof), and when doing so, use it to markup the entire contact information (via <address class="vcard">), not just the address of the contact.
Why is url property necessary?
Why is it necessary to put class name "url" on URL elements in the hCard when those hyperlinks already start with "http://", and that is enough to distinguish them from email links?
- The classname "url" is necessary to explicitly distinguish hyperlinks that are URL elements for the hCard, from other hyperlinks that may be related to the item or otherwise in the same containing element but should not be included in the hCard. Common links that may appear in the document but not be contact information are action related links (download data, add to friends list, etc.) contact hyperlinks (email, internal site messaging, autodialers), as well as hyperlinks to photos, or other random hyperlinks that happen to be inside the hCard.
How do I support an existing vCard URL?
I already have a vCard that I keep up-to-date. I don't want to change any references to it because it might break something else, what can I do?
- You can use .HTACCESS to rewrite links to your vCard to a webservice that converts a page to the vCard dynamically, to do this you need to add something similar to your .htaccess file
RewriteRule ^path/to/old.vcf http://suda.co.uk/projects/X2V/get-vcard.php\?uri=http://example.com/hCard_encoded.htm&filename=old.vcf
Now you shouldn't have to do anything else, all links to the "old.vcf" are redirected to the webservice and will return a new vCard that is dynamially generated from your page.
I think that using 'Redirect' is better than using mod_rewrite (is not enabled on some hosts) --Robert Bachmann
Redirect /path/to/old.vcf http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://example.com/hCard_encoded.htm&filename=old.vcf
What are plural hCard properties?
Is there a list of all hCard properties which can be plural?
Is there a list of all the properties which can have multiple instances?
- There is the list of hCard properties, and the list of singular hCard properties. Everything that is not singular is plural. This list was presented explicitly (after much analysis of RFC2426) because it was too hard to read RFC2426 and reliably grok which properties were singular vs. plural.
Old previous answer:
- We have avoided *duplicating* (or providing a shortcut for) the "can this property occur multiple times or not" deliberately in order to avoid repeating a constraint from RFC 2426 vCard, and thus potentially getting it wrong. Here is the way to determine whether or not a particular property can occur multiple times (is a plural property / may have multiple instances or values).
- Check the hCard XMDP profile for the property definition.
- If the property definition references a plural form in RFC 2426 (e.g. honorific-suffix references honorific suffixes), then the property is a plural property.
- Else go check the referenced section in RFC 2426 which should state explicitly whether or not the property is plural or singular.
- Else (if RFC 2426 is *not* explicit) then the property is plural.
What does FN stand for?
What does FN stand for?
- FN stands for "Formatted Name." From Section 3.1.1 of the RFC:
Type purpose: To specify the formatted text corresponding to the name of the object the vCard represents.
- The reasoning behind this seems to be that, while N gives us a structured name, FN gives us the human-readable, formatted name which is assembled from its structured parts in a culturally dependant way.
How is gender represented?
How do you represent gender in hCard?
- There is no GENDER property in vCard RFC2426. hCard is following the schema from vCard for interoperability reasons. It is possible to represent gender implicitly in the honorific-prefix field, e.g. Mr. for male, and Ms. for female:
<span class="honorific-prefix">Mr.</span>
or
<span class="honorific-prefix">Ms.</span>
This approach does have the limitation that "Mr." and "Ms." (or "Miss"/ "Mrs.") conflict with a higher-ranking, gender-neutral honorific, such as "Dr." or "Rev." for the person.
Note that there is also a page on MSDN that mentions vCard and "gender". Not sure what to make of that.
Gender could be represented with a genealogical microformat, but that seems like overkill.
Instead, keep it simple! Where appropriate, use tags/categories to tag people's hCards with their gender, "male", "female", or any other tag you feel is appropriate. See gender identity for more details on the topic.
See also vcard-suggestions#Gender.
Can a hCard contain extra elements?
Is it OK for an hCard node to contain extra elements?
- Yes, parsers will ignore anything they don't understand.
Can a GEO be inferred from an ADR in an hCard?
Can I automatically add GEO from an address when transforming an hCard to vCard if it is not present?
- No, an address represents a building which is a polygon, whereas a GEO only represents a single point
Why doesn't X2V convert email with name as plain text?
X2V doesn't convert my email address correctly, it is in the form href="FirstName LastName <Email@example.com>"
- While that form of email address works for some programs such as outlook, it is not a valid mailto: value (see RFC2368) the FirstName and LastName should be omitted.
One possible valid hCard markup would be:
<span class="vcard"> <span class="fn">Firstname Lastname</span> <<a class="email" href="mailto:Email@example.com">Email@example.com</a>> </span>
This might be displayed as:
Firstname Lastname <email@example.com>
What hCard properties are required?
What properties are required in an hCard?
- The only required properties are 'fn' (the formatted name) and 'n' (the structured name), but 'n' can under certain circumstances be inferred from the
fn
property. See the Implied N Optimization for details.
Does N property require all sub-properties?
If I use the 'n' property, do I have to use ALL of the sub-properties?
- No, You can use as many or as few as you need to mark-up the name, but at a minimum you should at least use the 'given-name' and 'family-name' sub-properties if at all possible. If all you have is a nickname/handle/userid, then consider simply marking it up as an 'fn' property and taking advantage of the Implied "nickname" Optimization.
Do FN and N need to be on same element?
Do the 'fn' and 'n' properties have to be on the same element?
- No, you can have two separate elements, for example:
<p class="vcard">My name is <span class="n"> <span class="honorific-prefix">Mr.</span> <span class="given-name">John</span> <span class="additional-name">Q</span> <span class="family-name">Public</span> </span> but you can just call me <span class="fn">Johnny</span> </p>
How do you convert a vCard to an hCard?
Is there a way to convert a vCard to an hCard?
- There is no canonical conversion from a vCard to an hCard because you can construct an hCard in many different ways while expressing the same semantics. If you would like to recommend a suggested template hCard to use when displaying vCards in a browser, please propose it to the mailing list.
Are descendant elements recognized in a microformat?
Are descendants recognized in a microformat property?
- Yes, for example:
<span class="country-name">United States <small>of</small> America</span>
The output would be "United States of America".
Do properties like TEL use all descendants?
Do properties like TEL use all descendants? e.g.
<span class="tel"><span class="type">Home</span>:<span class="value">+1.234.567.8900</span></span>
Shouldn't that output be "TEL:Home: +1.234.567.8900"?
- No. class="value" is used to denote a sub-element which is used for the value of the property. See Value excerpting for more details.
Can you have multiple value elements?
Can you have multiple class="value" elements inside a property and what happens to them?
- Sure, for example:
<span class="tel"><span class="type">Home</span>:<span class="value">+1</span>.<span class="value">234</span>.<span class="value">567</span>.<span class="value">8900</span></span>
would output: "+12345678900".
Can you mix properties and the root class name?
Can you put properties on the same element as the root class for a microformat? E.g. class="vcard fn"?
- No, for several reasons:
- It breaks the simple contextual CSS selector rule for finding and styling property values: .rootname .propertyname which will make it more difficult to write scoped CSS for the properties. For more on why this is important see the microformats FAQ regarding class interactions.
- It will result in more confusion for parsers which may be parsing nested microformats.
Can you mix a property and its sub-properties?
Can singular sub-properties be mixed with parents?
- No, all sub-properties MUST be on elements inside their parents.
Can you use query strings on email?
What happened to the Query String on my email address?
- Query strings are removed from email addresses because they are not valid for importing to vCards
Are ADR and TEL types case sensitive?
Is the list of possible types for an ADR and TEL case sensitive?
- No, enumerated values are case-insensitive, therefore Home, home, HOME, etc. are all equivalent.
How does GEO work with ABBR?
What happens to the GEO sub-properties when GEO is used with ABBR?
- The GEO property can be represented two different ways:
<span class="geo"> <span class="latitude">123.45</span> <span class="longitude">67.89</span> </span> <abbr class="geo" title="123.45;67.89">My House</abbr>
When used with an <abbr> element the latitude and longitude are seperated by a semicolon.
Why is the root class name vcard?
Why is the root class="vcard" and not 'hcard'?
- The reason is historical, hCard is based off of the vCard specification.
How do you mark up a 'phone extension?
How do I mark up a 'phone extension in hCard? There doesn't seem to be a way to declare a telephone extension in the vCard RFC 2426 spec, the suggested way is currently:
<span class="tel"> <span class="type">work</span>: <span class="value">800 555-1212 x 1234</span> </span>
RFC 3966 suggests that an extension be indicated with ";ext=" for example:
<span class="tel"> <span class="type">work</span>: <span class="value">800 555-1212;ext=1234</span> </span>
although that is more relevant when used as a URI:
<span class="tel"> <span class="type">work</span>: <a class="value" href="tel:+18005551212;ext=1234">800 555-1212;ext=1234</a> </span>
ITU-T Recommendation E.123 1.6 specifies the use of the word "extension" or abbreviation thereof:
Telephone International +22 607 123 4567 ext. 876
The above example may be better as:
<span class="tel"> <span class="type">work</span>: <a class="value" href="tel:+18005551212;ext=1234">800 555-1212 ext. 1234</a> </span>
How do you encode IM accounts?
How do I encode my IM account in hCard?
Can you hCard the deceased?
How do you make an hCard for the deceased?
- vCards were never designed to handle date-of-death, please refer to the biographical or genealogy-formats microformat
- See also vcard-suggestions#Deceased
Any plans for xparams?
Are there plans to include x-parameters in future versions of hCard?
- No. The problem is that each of these x-parameters are vendor specific and are not part of the RFC. Secondly, there is no way to be 100% sure that 'x-foobar' is not just a content-specific HTML class name that the publisher is using for CSS styling.
What is a word in implied optimizations?
What constitutes a "word" for the purpose of 'implied-n optimization'?
- "N" can be implied from "FN" when the content of "FN" is broken into two "words" separated by whitespace. For this purpose, a "word" is any sequence of non-whitespace characters including but not limited to low- and high-range alphanumerics and punctuation. A "word" can be characterised by the following regular expression:
/\S+/
How do you create non English tooltips?
My website is not in English and i want the tooltips to be in my native language
- Properties such as class="type" require an enumerated list of English words. It is possible to use your native language for the displaying tooltip, but still use the English work for the class="type" without it being shown.
<abbr class="type" title="home"> <span title="[your native word for home here]"> to my home </span> </abbr>
Having an span with a title attribute inside the abbr element will only display the title on the span, where you have the text (your native word for home here).
Related Pages
- hCard
- hCard cheatsheet - hCard properties
- hCard creator (feedback) - create your own hCard.
- hCard authoring - learn how to add hCard markup to your existing contact info.
- hCard examples - example usage of various classes within hCard.
- hCard examples in the wild - an on-going list of websites which use hCards.
- hcard-supporting-user-profiles - sites with user profiles marked up with hCard - a very common example.
- hCard FAQ - if you have any questions about hCard, check here.
- hCard implementations - websites or tools which either generate or parse hCards.
- hCard parsing - normative details of how to parse hCards.
- hCards and pages - semantic distinctions between different hCards on a page, and how to identify each
- hcard-user-interface - techniques and issues surrounding user-interfaces to author, publish, and display hCards.
- hCard profile - the XMDP profile for hCard
- hCard singular properties - an explanation of the list of singular properties in hCard.
- hCard tests - a wiki page with actual embedded hCards to try parsing.
- hCard advocacy - encourage others to use hCard
- hCard "to do" - jobs to do
The hCard specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. These thoughts, issues, and questions are kept in separate pages.
- hCard brainstorming - brainstorms and other explorations relating to hCard.
- hcard-parsing-brainstorming - brainstorming specific to parsing of hCard
- geo brainstorming
- hCard feedback - general feedback (as opposed to specific issues).
- hCard issues - specific issues with the specification.
- vCard errata - corrections to the vCard specification, which underlies hCard.
- vCard suggestions - suggested improvements to the vCard specification.