<div>I'll throw in my 2 cents with you, Alexey - a generic facility like this is needed.  <label> seems like the perfect pre-existing solution, and if it has problems outside forms as you stated earlier, that's just something that browsers makers will have to address if it gets into the standard...or am I being naive? ;-)
</div>
<div> </div>
<div>By doing something generic like this, labels could be used for content that's visible and/or audible, logically in-stream and/or out-of-stream (depending on the client) as determined by CSS, and could be defined separately from the content they're describing (because of the 'for' attribute).  While that could lead to some confusion - particularly in cases of misuse or overuse - it's also a powerful tool to present nicely-formatted, mixed in-stream and out-of-stream content simply by switching stylesheets.
</div>
<div> </div>
<div>Thinking out loud on CSS selectors for the various tags that have been proposed:</div>
<div>   <label>: attribute selector (ex: label[for="myImg"]{...})</div>
<div>   <caption>: adjacency selector (ex: #myImg+caption{...})</div>
<div>   <legend>: adjacency or parent-child selector (ex: #myImg+legend{...} or #myImg>legend{...})</div>
<div> </div>
<div>I see no clear advantage - any of the above could be preferable/less preferable depending on the circumstances and organization of the individual page.<br><br> </div>
<div><span class="gmail_quote">On 11/13/06, <b class="gmail_sendername">Alexey Feldgendler</b> <<a href="mailto:alexey@feldgendler.ru">alexey@feldgendler.ru</a>> wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">On Mon, 13 Nov 2006 22:30:13 +0600, Jeff Seager <<a href="mailto:Jeff.Seager@wvdrs.org">Jeff.Seager@wvdrs.org
</a>> wrote:<br><br>> After reflecting on your points and others, Alexey, I do expect more of<br>> a caption than I expect of a simple attribute. Most importantly, I<br>> expect it to be visible by default if I have a visible picture. For that
<br>> reason, I agree now with those who suggest a CAPTION (or LEGEND)<br>> element, rather than an attribute.<br><br>I totally agree with you here.<br><br>I believe HTML should have an element for every attribute intended to hold human-readable text. A raw idea can go like this:
<br><br><img id="img1" src="..."><br><label for="img1" type="title">...</label><br><br>Here, <label> holds a value which should be treated the same way like the title attribute on <img>, except that it can contain nested markup. This would be useful for all attributes defined as %Text in HTML -- in HTML4, these are ABBR, ALT, LABEL, STANDBY, SUMMARY, TITLE. However, doing a full straightforward solution like this may be bad for backward compatibility, especially in the case of ALT. But the idea is: whenever we write an attribute of type %Text, we want text with markup, so an element instead of attribute is needed.
<br><br><br>--<br>Alexey Feldgendler <<a href="mailto:alexey@feldgendler.ru">alexey@feldgendler.ru</a>><br>[ICQ: 115226275] <a href="http://feldgendler.livejournal.com">http://feldgendler.livejournal.com</a><br></blockquote>
</div><br>