|This article needs additional citations for verification. (August 2010)|
Geo is a microformat used for marking up WGS84 geographical coordinates (latitude;longitude) in (X)HTML. Although termed a "draft" specification, this is a formality, and the format is stable and in widespread use; not least as a sub-set of the published hCalendar and hCard microformat specifications, neither of which is still a draft.
Use of Geo allows parsing tools (for example other websites, or Firefox's Operator extension) to extract the locations, and display them using some other website or mapping tool, or to load them into a GPS device, index or aggregate them, or convert them into an alternative format.
- If latitude is present, so must be longitude, and vice versa.
- The same number of decimal places should be used in each value, including trailing zeroes.[note 1]
There are two ways to convert ordinary (X)HTML into a geo microformat:
Adding three classes. For example the marked-up text:
<div>Belvide: 52.686; -2.193</div>
<div class="geo">Belvide: <span class="latitude">52.686</span>; <span class="longitude">-2.193</span></div>
by adding the class-attribute values "geo", "latitude" and "longitude".
This will display
Belvide: 52.686; -2.193
and a geo microformat for that location, Belvide Reservoir, which will be detected, on this page, by microformat parsing tools.
In some cases, a shorthand version may be used, with just the outer class. Latitude must be first:
Belvide Reservoir is at 52.686; -2.193.
Belvide Reservoir is at <span class="geo">52.686; -2.193</span>.
Note that the separator must be a semi-colon (;). If the display of some other separator is desired, then the
abbr element can be used, with the value to be interpreted placed in its
Belvide Reservoir is at <abbr class="geo" title="52.686;-2.193">52.686, -2.193</abbr>.
This can also be used to display the location using some other schema:
Belvide Reservoir is at <abbr class="geo" title="52.686;-2.193">Grid reference SJ870099</abbr>.
However, it is considered bad practice to use
abbr to hide the location completely:
Belvide Reservoir is <abbr class="geo" title="52.686;-2.193">nice to visit</abbr>.
Concerns have been expressed  that the use of the
abbr element (using the so-called abbr-design-pattern) in the above manner causes accessibility problems, not least for users of screen readers and aural browsers. Work is underway to find an alternative method of presenting coordinates.
There are three active proposals, none mutually-exclusive, to extend the geo microformat:
- geo-extension - for representing coordinates on other planets, moons etc., and with non-WGS84 schema
- geo-elevation - for representing altitude
- geo-waypoint - for representing routes and boundaries, using waypoints
Organisations and websites using Geo include:
- Flickr - on over three million photo pages
- Geograph British Isles - on over one million photo pages
- Multimap - all map pages
- MyMap - example:  (Taiwanese language site)
- OpenStreetMap - wiki pages about places, GPS traces and diary entries
- The West Midland Bird Club
- Locify - location enhanced browsing on mobile phone
- Wikipedia - embedded in geo templates of map-link pages
Many[which?] of the organisations publishing hCard include a geo as part of that.
- GeoSPARQL, Geographic Information System (GIS) data for the W3C Semantic Web using the Resource Description Framework (RDF) and SPARQL
- "Geo Spec". microformats community. Retrieved 17 August 2010.
- "Extending HTML5 — Microformats". HTML5 Doctor. Retrieved 19 August 2010.
- "hCalendar 1.0 Spec". Microformats community. Retrieved 17 August 2010.
- "hCard 1.0 Spec". Microformats Community. Retrieved 17 August 2010.
- Web Standards Project, hAccessibility: Abbreviations in Microformats
- "Microformats in Google Maps". Retrieved August 25, 2010.