[uf-discuss] An Inconvenient hCard

Ara Pehlivanian ara.pehlivanian at gmail.com
Tue Mar 20 17:00:45 PST 2007


On 3/20/07, Paul Wilkins <paul_wilkins at xtra.co.nz> wrote:
> From: "Ara Pehlivanian" <ara.pehlivanian at gmail.com>
> To: "Microformats Discuss" <microformats-discuss at microformats.org>
> Sent: Monday, March 12, 2007 1:06 PM
> Subject: [uf-discuss] An Inconvenient hCard
>
>
> > I've got a bit of a problem with an hCard that I need to mark up and I
> > was wondering if anyone could lend me a hand.
> >
> > I realize the syntax requires that a type be specified for telephone
> > numbers ("voice", "fax", etc...) and that's where my problem lies.
> > It's inconvenient to have the word "voice" appear in the markup
> > because that's not how the convention (at least in this neck of the
> > woods) is when writing out contact information. The final display
> > should be:
> >
> > Tel.: (514) 123-4567
> > Fax: (514) 123-4568
> >
> > Yet with the required "voice"/"fax" types it ends up like this:
> >
> > Voice Tel.: (514) 123-4567
> > Fax Fax: (514) 123-4568
> >
> > or in the French version of the page:
> >
> > Voice Tél.: (514) 123-4567
> > Fax Téléc.: (514) 123-4568
> >
> > I realize that it's simple enough to just hide the types via CSS, but
> > being the strict standards advocate that I am, I don't like entangling
> > the structural layer with the presentational one by making it
> > dependent on it. The idea of superfluous words littering my markup
> > without proper grammatical consideration doesn't sit well with me.
> >
> > I thought of doing something like this:
> >
> > Tel.: (514) 123-4567 (Voice)
> > Fax: (514) 123-4567 (Fax)
> >
> > or in the French:
> >
> > Tél.: (514) 123-4567 (Voice)
> > Téléc.: (514) 123-4568 (Fax)
> >
> > But it's redundant in English and nonsensical in French.
> >
> > So, dear Microformats community, please lend me a hand and help me
> > unravel this conundrum of mine.
>
> I have a creative solution here for you, inspired from
> Fax Téléc.: (514) 123-4568
>
> If the page is in a foriegn language, such as French, you really should mark
> up non-French words with the appropriate language attribute
> HTML - lang
> XHTML 1.0 - lang and xml:lang
> XHTML 1.1 - xml:lang
> <span xml:lang="en">Fax</span>Téléc.: (514) 123-4568
>
> Then you can use a stylesheet to hide the english word.
> span [lang=en] {display: none;}
>
> Let's take this one further. Markup the new code as a telephone microformat.
>
> <p class="tel">
>     <span class="type" xml:lang="en">Fax</span>
>     Téléc.:
>     <span class="value">(514) 123-4568</span>
> </p>
>
> And hide the english text inside the microformat
> .tel [lang=en] {display: none;}
>

Thanks for the work you put into this solution but I've got two
problems with it. The first being what I mentioned in my initial
posting (though I may not have been overly clear about it), but hiding
content in CSS still means that the content is there for unstyled
viewing. Secondly, the attribute selector isn't widely supported
enough to make the solution viable on most browsers (in particular
IE).

Thanks though. :-/

A.
-- 
Ara Pehlivanian

Site: http://arapehlivanian.com/
Email & GTalk: ara.pehlivanian at gmail.com
MSN: ara_p at hotmail.com
Twitter: http://twitter.com/ara_p/



More information about the microformats-discuss mailing list