figure-examples: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(moved type to its own data point (using ABBR pattern))
Line 139: Line 139:


<pre>
<pre>
<div class="figure photograph">
<div class="figure">
   <img src="/path/to/img.jpg" alt="" />
   <img src="/path/to/img.jpg" alt="" />
   <p class="credit">Photo by <cite>Bob Johnson</cite></p>
   <p class="credit"><abbr class="type" title="Phtotograph">Photo</abbr> by <cite>Bob Johnson</cite></p>
   <p class="caption"><em class="title">Figure 1</em> Cras rutrum, enim at placerat varius, nisi massa consectetuer.</p>
   <p class="caption"><em class="title">Figure 1</em> Cras rutrum, enim at placerat varius, nisi massa consectetuer.</p>
</div>
</div>
</pre>
</pre>


* Figures can be further <code>class</code>ified as "photograph" or "illustration" (these could possibly be extended to include other options such as "chart," "line-art", etc.) (optional)
* Figures can be categorized as types using the "type" <code>class</code> (here type is embedded in the credit line, using [[abbr-design-pattern|the <code>ABBR</code> design pattern]]) - current recommendations: "photograph" or "illustration" (these could possibly be extended to include other options such as "chart," "line-art", etc.) (optional)
* The "title" <code>class</code> can be added to any element within the figure (optional)
* The "title" <code>class</code> can be added to any element within the figure (optional)
* Credit for the figure is denoted with the "credit" <code>class</code> (optional)
* Credit for the figure is denoted with the "credit" <code>class</code> (optional)

Revision as of 15:57, 28 August 2007

Figure examples

This page documents examples of mark up for figures like images, captions and data tables in webpages and the class-names that they've used - Chris Messina

The Problem

There is no HTML tags for identifying or marking up supporting content like illustrative images (as in encyclopaedic references), photographs and their captions, credits or licenses (as in news articles) or data tables. Typically this content can be found in close proximity to the relevant information, but oftentimes mixed with other elements.

The goal of this effort is to document and reflect the real-world needs of such design patterns while paying close attention to the types of data that people are using in this supportive role and also paying close attention to the existing class names and presentational styles that go along with such formats.

Participants

Real-World Examples

These are examples and implementations in the wild of various efforts at marking up figures in web pages, blog posts and articles.

CNET

CNET uses cnet-image-div, float-left, cnet-image, image-credit and image-caption to mark up supporting photographs and artwork.

See this example: Why I recommend the iPhone -- and don't.

HTML5

HTML5 introduces a new tag called "figure", which represents a block-level image, along with a caption:

<figure id="fig2">
  <legend>Figure 2. Install Mozilla XForms dialog</legend>
  <img alt="A Web site is requesting permission to install the following item: 
    Mozilla XForms 0.7 Unsigned" 
    src="installdialog.jpg" border="0" height="317" hspace="5" vspace="5" width="331" />
</figure>

This is slightly different from the broader goal of this effort, but nevertheless points to current work on this topic.

Existing Practices

In many cases, classes that are used exclusively for alignment and positioning are documented herein order to have an accurate sense for how people mark up this kind of content in practice.

FactoryCity Blog

  • uses a series of figure classes to markup figures.
  • the approach used is to mark up block level figures with both figure and either figure-a or figure-c classes.
  • figure-b and figure-d are used for inline figures aligned right and left, respectively
  • the a, b, c, d pattern is modeled after the top, right, bottom, left order of CSS attribute values

K2 WordPress Theme

  • The K2 stylesheet includes the following figure-related CSS:
.center {
	text-align: center;
	}

.alignright {
	float: right;
	}
	
.alignleft {
	float: left
	}

img.center, img[align="center"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
	}
	
img.alignright, img[align="right"] {
	padding: 4px;
	margin: 0 0 2px 7px;
	display: inline;
	}

img.alignleft, img[align="left"] {
	padding: 4px;
	margin: 0 7px 2px 0;
	display: inline;
	}
	
img.noborder {
	border: none !important;
	}

Habari K2 Theme

Similar to K2, the Habari K2 instance supports the following classes:

.center {
	text-align: center;
	}

.alignright {
	float: right;
	}
	
.alignleft {
	float: left
	}

img.center, img[align="center"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
	}
	
img.alignright, img[align="right"] {
	padding: 4px;
	margin: 0 0 2px 7px;
	display: inline;
	}

img.alignleft, img[align="left"] {
	padding: 4px;
	margin: 0 7px 2px 0;
	display: inline;
	}
	
img.noborder {
	border: none !important;
	}

ColdBlue WordPress Theme

  • includes the classes float-left or float-right for aligning figures

Revenue Watch Institute (website forthcoming)

During the development of the new website for Revenue Watch, this was what we cam up with to handle figures:

<div class="figure">
  <img src="/path/to/img.jpg" alt="" />
  <p class="credit"><abbr class="type" title="Phtotograph">Photo</abbr> by <cite>Bob Johnson</cite></p>
  <p class="caption"><em class="title">Figure 1</em> Cras rutrum, enim at placerat varius, nisi massa consectetuer.</p>
</div>
  • Figures can be categorized as types using the "type" class (here type is embedded in the credit line, using the ABBR design pattern) - current recommendations: "photograph" or "illustration" (these could possibly be extended to include other options such as "chart," "line-art", etc.) (optional)
  • The "title" class can be added to any element within the figure (optional)
  • Credit for the figure is denoted with the "credit" class (optional)
  • A caption is also available (optional)

Default styles:

.figure {
  margin: 0 0 1.5em;
}
.figure p {
  margin: 0;
  width: auto;
}
.figure .credit {
  font-size: .8em;
  text-align: right;
}
.figure .credit cite {
  font-style: inherit;
}
.figure .caption {
  font-style: italic;
  font-size: 1.1em;
}
.figure .title {
  font-style: normal;
  font-weight: bold;
}
.figure .title:after {
  content: ":";
}

No presentational information is added to the figures. The presentation is determined via script as a progressive enhancement (ALA article forthcoming).

Tables receive no figure-related styles, but graphs, charts, and maps do.

Comments

Why is "credit" not an hCard? Also, for pictures of places any geo/ hcard microformat included in the caption should be understood to be associated with the figure. There is debate elsewhere, about whether coordinates should be for the camera position, or the object photographed; with consensus coming down on the side of the former [1], [2]. That said, the whole "figure" div could be an hcard, with the picture being part of that; and a separate hCard for the photographer included. Complex... Andy Mabbett 16:52, 21 Aug 2007 (PDT)

I like the idea of the hCard if there is more information available other than just the name. If you are just putting the person's name, I still don't see the point of making that an hCard. Add some additional data (a link, email address, etc.) and I think you have an argument. Otherwise I think it's a waste of markup and simply clutters the results of whatever hCards might exist elsewhere on the page. As for geo-data, I think that sort of information may be useful, but I think I'd prefer to see that embedded within a longdesc page with more info on the image. Inside an article it seems superfluous to me. A longdesc page for an image could include much more data about where it was taken, by whom (possibly even a full hCard of the creator), etc. Aaron Gustafson 18:24, 22 Aug 2007 (EDT)

Further discussion

A few blog posts capture the essence of this discussion well: