<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=VinceVeselosky</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=VinceVeselosky"/>
	<link rel="alternate" type="text/html" href="https://microformats.org/wiki/Special:Contributions/VinceVeselosky"/>
	<updated>2026-05-26T00:52:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=include-pattern-feedback&amp;diff=25680</id>
		<title>include-pattern-feedback</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=include-pattern-feedback&amp;diff=25680"/>
		<updated>2008-01-24T13:46:02Z</updated>

		<summary type="html">&lt;p&gt;VinceVeselosky: /* Hyperlink Include - Screen Reader Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; Include Pattern Feedback &amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
Feedback about [[include-pattern]].&lt;br /&gt;
&lt;br /&gt;
== Objects and Browser Behavior ==&lt;br /&gt;
&lt;br /&gt;
Over at Yahoo! Local, we were using the object include pattern for all our [[hreview|hReviews]] on business detail pages and review listings. That is, until we realized that Safari and Internet Explorer both try to embed the entire page with every OBJECT call.  (Firefox correctly recognizes that it's a local object and doesn't reload anything.) &lt;br /&gt;
&lt;br /&gt;
On a page with 20+ reviews, this means a substantial increase in load time and memory consumption. As a result of this (bad) browser behavior, we removed the objects entirely.&lt;br /&gt;
&lt;br /&gt;
Any suggestions for workarounds or modifications to the pattern?&lt;br /&gt;
&lt;br /&gt;
-- AndyBaio 29 Jun 2006&lt;br /&gt;
&lt;br /&gt;
Can you use the hyperlink option with DHMTL/Ajax to perform replacements in advanced browsers? (Simon Willison's &amp;lt;code&amp;gt;[http://simon.incutio.com/archive/2003/03/25/getElementsBySelector getElementsBySelector()]&amp;lt;/code&amp;gt; may be helpful)&lt;br /&gt;
  &amp;lt;a href=&amp;quot;#id&amp;quot; class=&amp;quot;include&amp;quot; title=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
with something like:&lt;br /&gt;
  //Works only for linked include-pattern definition at microformats.org&lt;br /&gt;
  //Requires Simon Willison's getElementsBySelector()&lt;br /&gt;
  //  and normal IE workaround for addEventListener()&lt;br /&gt;
  addEventListener( window, 'load', function() {&lt;br /&gt;
    var myIncludes = document.getElementsBySelector( 'a[href].include' ), a, e;&lt;br /&gt;
    for( var i=0; a=myIncludes[i]; i++ ) if (a.href.charAt(0)=='#') {&lt;br /&gt;
      e = document.getElementsBySelector( a.href )[0].cloneNode( true );&lt;br /&gt;
      a.parentNode.replaceChild( e, a );&lt;br /&gt;
    }&lt;br /&gt;
  })&lt;br /&gt;
--[[User:RichHall|RichHall]] 00:51, 23 Oct 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
It seems there is some confusion around this topic. I believe that the included data '''are not supposed to be actually included in the point of inclusion'''. I believe it is only meant to be a hint for the microformats parser; but the inclusion pattern should not affect how the page is rendered. If that is true, let's clear out this page:&lt;br /&gt;
* Remove the DHTML suggestion by Rich Hall.&lt;br /&gt;
* Change the IRC quote between Tantek and Kaply. Replace the quote ''&amp;quot;clone the dom node from the other vcard and replace the object with the corresponding nodes&amp;quot;'' with ''&amp;quot;look for objects in the vcard and check their corresponding nodes in the dom&amp;quot; [http://rbach.priv.at/Microformats-IRC/2007-01-03#T165941|IRC of 2007-01-03]'' or remove the IRC quote completely.&lt;br /&gt;
&lt;br /&gt;
-- [[User:JiriKopsa]] 18 Mar 2007&lt;br /&gt;
&lt;br /&gt;
:For clarification, it is true that the spec *does* call for a microformat include to be ignored (content-neutral) when its data isn't being accessed. My Ajax suggestion is valid for those of us extracting microformat data client-side, but feel free to use it from an XHR callback instead of a window load event. Also, it would seem that without adjusting the DOM by cloning the repeated nodes, implementers would have to roll their own smart traversal functions rather than using built-in or well-defined CSS, XPath, E4X, etc. My feedback is that it's usually easier/faster to complete the tree than leave it sparse and memory-efficient, but it would be nice if the spec could leave enough wiggle room for both alternatives. &lt;br /&gt;
:-- [[User:RichHall|RichHall]] 12:47, 17 Dec 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
My hResume page [http://robert.o-rourke.org seen here] caused Safari &amp;lt;ins&amp;gt;2.0&amp;lt;/ins&amp;gt; some major issues. The page was jumping between object elements when a link was hovered eventually causing the browser to crash. You can follow the thread on the [http://www.mail-archive.com/listdad%40webstandardsgroup.org/msg06078.html WSG mail archive].&lt;br /&gt;
&lt;br /&gt;
It seems that while the object element may be more semantically appropriate it &amp;lt;del&amp;gt;is not&amp;lt;/del&amp;gt; &amp;lt;ins&amp;gt;may not be&amp;lt;/ins&amp;gt; usable in lieu of the issues raised in Safari.&lt;br /&gt;
&lt;br /&gt;
--[[User:SanchoTheFat|Robert O'Rourke]] 12:08, 3 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
Which version of Safari?  Please be specific as many Safari OBJECT bugs were fixed in Safari 2.x.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Tantek|Tantek]] 13:39, 3 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
The issues with OBJECT in Internet Explorer &amp;amp; Safari and the lack of a good workaround example are a show stopper for me using this. I am now commenting it out. Hope someone can think of a workaround!&lt;br /&gt;
&lt;br /&gt;
--[[User:WizardIsHungry|Jon Williams]] 10:21, 7 Feb 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Hyperlink Include - issues for keyboard users (including Screen Reader users) ==&lt;br /&gt;
&lt;br /&gt;
Although invisible in visual user agents, and (according to the JAWS 7.0 test below) not spoken by screen readers (at least not by JAWS 7.0), empty links are still contained in the normal tab cycle. Users navigating via keyboard (or equivalent, e.g. switch access, puff/blow devices, etc) will still need to tab through the empty links (tested in Firefox 2.0, IE 6, IE 7; Opera 9.2 seems to remove empty links from tab cycle).&lt;br /&gt;
&lt;br /&gt;
This can be verified by modifying the test page below, adding a regular link at the end of the 5 variations of empty links. It takes a user 6 tabs to arrive at the &amp;quot;real&amp;quot; link. It would therefore be advisable to rethink the approach, or scrap it completely.&lt;br /&gt;
&lt;br /&gt;
-- [[User:PatrickLauke|Patrick H. Lauke]] 28 Apr 2007&lt;br /&gt;
&lt;br /&gt;
== Hyperlink Include - Screen Reader Testing ==&lt;br /&gt;
&lt;br /&gt;
Some [http://microformats.org/discuss/mail/microformats-discuss/2006-July/004693.html concerns have been raised] over the implications using empty hyperlinks may have on assistive devices such as screen readers. One concern is that an empty link may be read out, partially read out or result in some other confusing scenario for the user.&lt;br /&gt;
&lt;br /&gt;
In response, a [http://allinthehead.com/demo/include.html test page] consisting of a number of empty hyperlinks in the style suggested by the pattern has been created. A 'good' result is that none of the links be read out.&lt;br /&gt;
&lt;br /&gt;
=== Test Results from Yahoo! Accessibility ===&lt;br /&gt;
Tests by Mike Davies and members of the Yahoo! Accessibility Stakeholders group can be found at [http://yuiblog.com/blog/2008/01/23/empty-links/ Empty Links and Screen Readers].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The conclusion is that the most accessible link is one that contains link text. Different techniques of hiding links, from no link text, through to hiding by CSS can cause an accessibility barrier to screen reader users. Each screen reader presented its user with a different set of problems and barriers.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The article contains tables describing the behaviors of different screen readers in a number of scenarios.&lt;br /&gt;
&lt;br /&gt;
(added by: [[User:VinceVeselosky|VinceVeselosky]] 05:46, 24 Jan 2008 (PST) )&lt;br /&gt;
&lt;br /&gt;
=== Test Results: JAWS 7.0 with Firefox 1.5/Win ===&lt;br /&gt;
&lt;br /&gt;
Tested by [[User:Phae|Frances Berriman]] 2006-07-21.&lt;br /&gt;
&lt;br /&gt;
Purpose of this test was to ascertain what JAWS 7.0 would verbally announce to a user visiting the test case.&lt;br /&gt;
&lt;br /&gt;
* 31 dash include dash Mozilla Firefox&lt;br /&gt;
* Page has no links&lt;br /&gt;
* 31 dash include&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was keyboard access fully tested (see above)? This test is not conclusive, as JAWS 7.0's behavior may well differ from other access technology. Further testing with a wider range of readers is strongly recommended. -- [[User:PatrickLauke|Patrick H. Lauke]] 28 Apr 2007&lt;br /&gt;
&lt;br /&gt;
The example above has been incorrectly stated, to be honest.  Conclusion was just a conclusion for that verbal test, not overall.  Therefore, removed &amp;quot;Conclusion&amp;quot; line so it's not misleading! I concur with additional tests are vital (by as many people/softwares/scenarios as possible!).  [[User:Phae|Phae]] 04:10, 2 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
=== Proprietary attribute ===&lt;br /&gt;
&amp;lt;s&amp;gt;&lt;br /&gt;
HTML tidy on the [http://allinthehead.com/demo/include.html test page] gives:&lt;br /&gt;
:Warning: &amp;lt;a&amp;gt; proprietary attribute &amp;quot;data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The [http://validator.w3.org/check?verbose=1&amp;amp;uri=http%3A%2F%2Fallinthehead.com%2Fdemo%2Finclude.html W3C validator is similarly unimpressed].&lt;br /&gt;
&lt;br /&gt;
[[User:AndyMabbett|AndyMabbett]] 14:22, 22 Oct 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
==== Use href ====&lt;br /&gt;
To clarify, links on the [http://allinthehead.com/demo/include.html test page] should be changed to use the &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; attribute as described at [[include-pattern]] (without &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; attributes, the elements probably won't register as hyperlinks, but anchors). Set &amp;lt;code&amp;gt;title=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; to fix empty link behavior for many assistive devices.  --[[User:RichHall|RichHall]] 23:31, 22 Oct 2006 (PDT)&lt;br /&gt;
&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Test page corrected ====&lt;br /&gt;
2006-10-25: This error has been corrected on the [http://allinthehead.com/demo/include.html test page]. Any tests should probably be re-run in light of this.&lt;br /&gt;
&lt;br /&gt;
== Unclear status ==&lt;br /&gt;
&lt;br /&gt;
It's not clear, either from the main Wiki page or [[include-pattern]], whether this is an agreed standard, a draft, or just a proposal. [[User:AndyMabbett|AndyMabbett]] 03:14, 18 Oct 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
* [[include-pattern]] is not its own proposal, draft, or spec.  It is a design pattern, as listed on the [[Main_Page|wiki home page]] that is included in other proposals, drafts. and specs.  ''Recommend for adding to the [[include-pattern-faq]].&lt;br /&gt;
**And that is not clear, either from the main Wiki page or [[include-pattern]]. [[User:AndyMabbett|AndyMabbett]] 16:40, 18 Oct 2006 (PDT)&lt;br /&gt;
***ACCEPTED.  Will further clarify relationship between patterns and formats. [[User:Tantek|Tantek]] 16:48, 18 Oct 2006 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Parsing for include-pattern==&lt;br /&gt;
&lt;br /&gt;
''Note: this issue is obsolete.  On a [http://rbach.priv.at/Microformats-IRC/2007-01-03#T165528 IRC conversation 2007-01-03], Mike Kaply admitted that he figured this out, which is to apply all includes first into the parse tree before looking for any properties. -Tantek''&lt;br /&gt;
&lt;br /&gt;
''To be more specific, what finally occurred to me is that the object pattern is simply about grabbing nodes from another vcard and using them in this vcard. So the implementor responsibility is just to clone the dom node from the other vcard and replace the object with the corresponding nodes. Works great. (of course I also had to clone the entire vcard since I can't manipulate the DOM like that without changing the page) -mkaply''&lt;br /&gt;
&lt;br /&gt;
In an [http://rbach.priv.at/Microformats-IRC/2007-01-02#T205847 IRC discussion] with [http://www.kaply.com/weblog/ Mike Kaply] (author of the [https://addons.mozilla.org/firefox/4106/ Operator] extension for Firefox) we discussed the difficulty of parsing for an [[include-pattern]] in [[hresume|hResume]].  Mike asks:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;I'm really wondering why the &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; stuff doesn't point back to the entire vCard. I don't understand why the spec has it point to individual items.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
The problem was thought to be a weakness in the specification, which doesn't specify what part of the data is in the content that is pointed to by the &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently, to overcome this a parser needs to follow this logic: &lt;br /&gt;
::IF I don't find an &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt;, look for an &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;. IF there is an &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;, do a &amp;lt;code&amp;gt;getelementbyid&amp;lt;/code&amp;gt; on that &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt;, but yet there was nothing about that &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; that said that the content I was looking for in the other card was an &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two things may help in overcoming this difficulty:&lt;br /&gt;
&lt;br /&gt;
# Change the spec to have the include-pattern reference the entire vCard, with the intent that any data not found in this vCard use the other vCard&lt;br /&gt;
# Include the element of the reference, where the class attribute on &amp;lt;code&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt; has &amp;quot;include&amp;quot; plus the element that needs to be included. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;object&lt;br /&gt;
class=&amp;quot;include fn&amp;quot; data=&amp;quot;#vcard-name&amp;quot;&amp;gt;myname&amp;lt;/object&amp;gt; &amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally, I pointed out that using the &amp;lt;code&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt; element to contain the reference makes Microsoft's Internet Explorer throw an error &amp;quot;Your current security settings prohibit ActiveX controls on this page. As a result, the page may not display correctly.&amp;quot; Of course, there is no ActiveX content on an include-pattern. &lt;br /&gt;
&lt;br /&gt;
[[User:Bob Jonkman|Bob Jonkman]] 21:15, 2 Jan 2007 (PST)#&lt;br /&gt;
&lt;br /&gt;
==Concatenating values==&lt;br /&gt;
&lt;br /&gt;
I feel that there should be a way to &amp;quot;include&amp;quot; data from two places, in one microformat property. For instance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span id=&amp;quot;summaryA&amp;quot; class=&amp;quot;summary&amp;quot;&amp;gt;Kidderminster Branch Indoor Meeting&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span id=&amp;quot;summaryB&amp;gt;Janaury&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and later&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;object data=&amp;quot;#summaryB+#summaryA&amp;quot; class=&amp;quot;include&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
would give a summary of:&lt;br /&gt;
&lt;br /&gt;
:'''January Kidderminster Branch Indoor Meeting'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It may even be possible to include extra data:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span id=&amp;quot;summaryC&amp;gt;Fred Smith&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;object data=&amp;quot;#summaryA+ with +#summaryC&amp;quot; class=&amp;quot;include&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to give:&lt;br /&gt;
&lt;br /&gt;
:'''Kidderminster Branch Indoor Meeting with Fred Smith'''&lt;br /&gt;
&lt;br /&gt;
[[User:AndyMabbett|Andy Mabbett]] 14:33, 8 Jan 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
Why not use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;object data=&amp;quot;#summaryA&amp;quot; class=&amp;quot;include&amp;quot;&amp;gt;&amp;lt;/object&amp;gt; with &amp;lt;object data=&amp;quot;#summaryB&amp;quot; class=&amp;quot;include&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to build&lt;br /&gt;
&lt;br /&gt;
:'''Kidderminster Branch Indoor Meeting with Fred Smith'''&lt;br /&gt;
&lt;br /&gt;
[[User:DerrickPallas|Derrick Pallas]] 11:15, 31 Jan 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Neat solution! Can anyone say whether current parsers accept this? [[User:AndyMabbett|Andy Mabbett]] 12:18, 31 Jan 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Fully disclosure: My XSLT transformer supports this implicitly because it does include-pattern first, then pulls values. My only question would be what to do with nested @class=&amp;quot;value&amp;quot; elements that could result from this.  [[User:DerrickPallas|Derrick Pallas]] 12:35, 31 Jan 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
==Related Pages==&lt;br /&gt;
{{include-pattern-related-pages}}&lt;/div&gt;</summary>
		<author><name>VinceVeselosky</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=include-pattern&amp;diff=25634</id>
		<title>include-pattern</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=include-pattern&amp;diff=25634"/>
		<updated>2008-01-24T13:33:49Z</updated>

		<summary type="html">&lt;p&gt;VinceVeselosky: /* notes and issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Include Pattern&amp;lt;/h1&amp;gt;&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
Initially developed as part of [[resume-brainstorming]], the include pattern is a mechanism to include a portion of data from one area of a page into another area of the same page. The following is documentation for re-use of the pattern in other microformats, and for publishers working with it.&lt;br /&gt;
&lt;br /&gt;
;Editors: Tantek Çelik&lt;br /&gt;
: Ben Ward&lt;br /&gt;
&lt;br /&gt;
== background ==&lt;br /&gt;
&lt;br /&gt;
[[hresume|hResume]] needed the ability to include a name from one hCard at the top of a resume — the person's contact details — into the separate hCards used in the same person's employment history. Repeating name information would not have matched the existing publishing techniques used in Resumes and Curriculum Vitæ, would be inconvenient to publishers, and irritating to consumers. The include pattern is a mechanism to reference data from the same page, avoiding repetition, or &amp;lt;em&amp;gt;any&amp;lt;/em&amp;gt; duplicate visible information.&lt;br /&gt;
&lt;br /&gt;
== scope ==&lt;br /&gt;
&lt;br /&gt;
The include pattern is strictly limited to the scope of the current page. It cannot be used to include content from other URLs.&lt;br /&gt;
&lt;br /&gt;
== quick reference==&lt;br /&gt;
&lt;br /&gt;
The include-pattern is a mechanism to include content from one microformat into another microformat elsewhere in the same document, using hyperlinks (recommended) or OBJECT. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;a class=&amp;quot;include&amp;quot; href=&amp;quot;#author&amp;quot; title=&amp;quot;James Levine&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;object class=&amp;quot;include&amp;quot; data=&amp;quot;#author&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In specs which cite the include-pattern, either of the above code snippets will cause a microformats parser to replace the A or OBJECT element with class name &amp;quot;include&amp;quot; with the content fragment with ID &amp;quot;author&amp;quot;. Full examples follow.&lt;br /&gt;
&lt;br /&gt;
== in general==&lt;br /&gt;
&lt;br /&gt;
To reference includes, use an include element with class name &amp;quot;include&amp;quot; and a document fragment identifier. The content to be included should have an ID attribute set, and that ID should be referenced from the HREF or DATA attribute at the point of inclusion.&lt;br /&gt;
&lt;br /&gt;
The include element with class name &amp;quot;include&amp;quot; indicates a reference to a sub-tree elsewhere in the document which must be included in-place by microformat parsers. That is, the element with class &amp;quot;include&amp;quot; is _replaced_ in the DOM by the referenced sub-tree.&lt;br /&gt;
&lt;br /&gt;
To prevent infinite loops, if a class=&amp;quot;include&amp;quot; refers to itself or to an ancestor in the parse tree, then it is ignored and has no effect on the parser.&lt;br /&gt;
&lt;br /&gt;
Per the [[include-pattern#Scope|scope]], the OBJECT 'data' attribute and hyperlink 'href' attribute MUST be local ID references when used as include pattern instances. External references (requiring a consuming application to load an external resource) are not supported by this method.&lt;br /&gt;
&lt;br /&gt;
There are two HTML elements available to reference includes, hyperlink/Anchor and OBJECT. They are documented below.&lt;br /&gt;
&lt;br /&gt;
These methods of property indirection via a hyperlink element can apply to any/all properties in class-based microformats, but should only be used where a microformat explicitly states that the include-pattern is a dependency. For example, [[XOXO]] does not reference the include-pattern at this time, so sub-trees cannot be included by reference in XOXO. [[hResume]] and [[hReview]] do reference the include pattern.&lt;br /&gt;
&lt;br /&gt;
=== Hyperlink ===&lt;br /&gt;
&lt;br /&gt;
The recommended way to reference includes within microformats is to use a hyperlink.&lt;br /&gt;
&lt;br /&gt;
==== Hyperlink example====&lt;br /&gt;
&lt;br /&gt;
Here is an [[hcard|hCard]] from the beginning of a resume, shown here as a verbose hCard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn n&amp;quot; id=&amp;quot;james-hcard-name&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;James&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Levine&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Elsewhere on the page, a second hCard re-uses the &amp;quot;fn n&amp;quot; content from the first hCard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a href=&amp;quot;#james-hcard-name&amp;quot; class=&amp;quot;include&amp;quot; title=&amp;quot;James Levine&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;org&amp;quot;&amp;gt;SimplyHired&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;Microformat Brainstormer&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Note that the lack of content inside the &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element with &amp;lt;code&amp;gt;class=&amp;quot;include&amp;quot;&amp;lt;/code&amp;gt; is deliberate, as it reflects the design requirement from [[hresume|hResume]] of not having to repeat &amp;lt;em&amp;gt;any&amp;lt;/em&amp;gt; name information with each job entry.  The &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute is used to aid useragents that wish to label the hyperlink outside its inline context.&lt;br /&gt;
&lt;br /&gt;
A microformat parser must treat the second hCard as follows, with the hyperlink include element completely replaced (including inner-text) by the sub-tree that was referenced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn n&amp;quot; id=&amp;quot;james-hcard-name&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;James&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Levine&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;org&amp;quot;&amp;gt;SimplyHired&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;Microformat Brainstormer&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== notes and issues ====&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; attribute value in the example &amp;quot;james-hcard-name&amp;quot; was chosen for demonstration purposes.  The text of the value has no semantic per the include-pattern other than to connect the source of the include to the destination.  Authors {{should}} use good [[POSH]] techniques to choose &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; names.&lt;br /&gt;
&lt;br /&gt;
Using the hyperlink include pattern causes no known issues in any web browser, as long as hyperlink includes without content are hidden with CSS. See below for details.&lt;br /&gt;
&lt;br /&gt;
Authors {{should}} supply content text or at least &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute text for the hyperlink itself. This can require repeating a small piece of information (such as a person's name in an hCard), or including generic text suitable for the context of the page. &lt;br /&gt;
&lt;br /&gt;
===== accessibility =====&lt;br /&gt;
&amp;lt;strong&amp;gt;Hyperlinks presented as an extracted list.&amp;lt;/strong&amp;gt; There are two points of view on this. &amp;lt;span id=&amp;quot;Accessibility_concerns&amp;quot;&amp;gt;The first is that the user experience of Assistive Technology can(might?) be severely degraded by the presence of hyperlinks which do not contain text (see [http://yuiblog.com/blog/2008/01/23/empty-links/ Empty Links and Screen Readers] for results of actual tests).&amp;lt;/span&amp;gt;  The second is that the first claim is only a side effect of some Assistive Technologies extracting the hyperlinks in a document and presenting them as a list, and that such technologies / features have no right to do so, and therefore it is not your problem to worry about. See [http://joeclark.org/appearances/atmedia2007/#context Joe Clark: When accessibility is not your problem: Headings and links read out of context], in particular:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;As writers, we are not authorizing you or Jaws to pull out our link text and remix it. Why don’t you rearrange the sentences, too?&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Hyperlinks and tab focusing in common browsers&amp;lt;/strong&amp;gt;. As noted in the [http://microformats.org/wiki/include-pattern-feedback include-pattern feedback page], any visible hyperlink used with an &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; attribute ends up in the browser's tab cycle. This affects all keyboard users (both sighted users that can't/don't operate a mouse, or screen reader users in the extreme case). Even empty hyperlinks receive focus. This can be tested by modifying the code of the original [http://allinthehead.com/demo/include.html a@include test page] to visually follow the tabbing from one hyperlink to the next (using CSS or, for test purposes, subtly changing the &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt;, tabbing through the page, and observing the change in the URL displayed in the browser's status bar). Hyperlinks hidden with CSS &amp;lt;code&amp;gt;display:none&amp;lt;/code&amp;gt; do not end up in the browser's tab cycle.&lt;br /&gt;
&lt;br /&gt;
Thus it is recommended that Hyperlink Include Pattern hyperlinks lacking inline content {{should}} be hidden with CSS.  As they have no content, this stylistic change has no net effect on the document's content semantics from a user's perspective.&lt;br /&gt;
&lt;br /&gt;
=== Object ===&lt;br /&gt;
&lt;br /&gt;
The Object Include Pattern is semantically superior to the Hyperlink Include; it is being used to embed content into the page. The &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; element based include was the original developed include pattern. However, there are serious browser compatibility issues that can affect some implementation scenarios and thus the above Hyperlink Include Pattern was developed and is now preferred.&lt;br /&gt;
&lt;br /&gt;
==== Object example ====&lt;br /&gt;
&lt;br /&gt;
Here is the same [[hcard|hCard]] from the beginning of the resume in the previous example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn n&amp;quot; id=&amp;quot;james-hcard-name&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;James&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Levine&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Elsewhere on the page, a second hCard re-uses the &amp;quot;fn n&amp;quot; content from the first hCard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;object data=&amp;quot;#james-hcard-name&amp;quot; class=&amp;quot;include&amp;quot;&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;org&amp;quot;&amp;gt;SimplyHired&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;Microformat Brainstormer&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A microformat parser must treat the second hCard as follows, with the &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; include element completely replaced by the sub-tree that it referenced:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn n&amp;quot; id=&amp;quot;james-hcard-name&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;James&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Levine&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;org&amp;quot;&amp;gt;SimplyHired&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;Microformat Brainstormer&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This method of hCard property indirection via an object element can apply to any/all properties in class-based microformats.&lt;br /&gt;
&lt;br /&gt;
=== notes and issues===&lt;br /&gt;
* Unlike the hyperlink pattern, the Object Include Pattern does not require any textual fallback. This makes it invisible to Assistive Technology with no adverse affect.&lt;br /&gt;
* Apple's Safari (WebKit-based) browser has some rendering issues with this use of &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;: You should set a width and height of &amp;quot;0&amp;quot; for the include elements to resolve this ('''version(s) affected needed''').&lt;br /&gt;
* Bugs have been reported in some web browsers (Internet Explorer, Safari, Firefox) that &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; elements referencing fragments of the same document erroneously cause the browser to make additional HTTP requests ('''version(s) affected needed'''). For scenarios where HTTP requests are a sensitive performance measure, this makes the Object Include Pattern inappropriate.&lt;br /&gt;
* Versions of Microsoft Internet Explorer with ActiveX controls disabled will throw a warning prompt upon finding an &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; element ('''version(s) affected needed''').&lt;br /&gt;
&lt;br /&gt;
== acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Thanks to discussions and brainstorms with a bunch of folks: [http://theryanking.com/ Ryan King], James Levine, the whole crowd at the [http://mashupcamp.com/index.cgi?HAtomFinalization Microformats specifications working session] at MashupCamp, [http://suda.co.uk/ Brian Suda], [http://randomchaos.com/ Scott Reynen], [http://allinthehead.com/ Drew McLellan].&lt;br /&gt;
&lt;br /&gt;
== specifications using ==&lt;br /&gt;
* [[hresume|hResume]]&lt;br /&gt;
* [[hreview|hReview]]&lt;br /&gt;
&lt;br /&gt;
=== considering ===&lt;br /&gt;
All class-based microformats {{should}} consider using and explicitly normatively stating support for the include pattern.&lt;br /&gt;
* [[hatom|hAtom]]&lt;br /&gt;
* [[hcalendar|hCalendar]]&lt;br /&gt;
* [[hcard|hCard]]&lt;br /&gt;
&lt;br /&gt;
== implementations ==&lt;br /&gt;
* X2V implements the [[include-pattern]] when parsing [[hcard|hCards]] and [[hcalendar|hCalendars]] for both object.include and a.include.&lt;br /&gt;
&lt;br /&gt;
== references ==&lt;br /&gt;
&lt;br /&gt;
=== normative ===&lt;br /&gt;
* HTML 4.01&lt;br /&gt;
&lt;br /&gt;
=== informative ===&lt;br /&gt;
* [[hcard|hCard]]&lt;br /&gt;
* [[hresume|hResume]]&lt;br /&gt;
* XHTML 1.0&lt;br /&gt;
&lt;br /&gt;
== related pages==&lt;br /&gt;
{{include-pattern-related-pages}}&lt;br /&gt;
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page].&lt;/div&gt;</summary>
		<author><name>VinceVeselosky</name></author>
	</entry>
</feed>