<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.whatwg.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KornelLesinski</id>
	<title>WHATWG Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.whatwg.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KornelLesinski"/>
	<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/wiki/Special:Contributions/KornelLesinski"/>
	<updated>2026-04-05T17:14:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Validator.nu_Web_Service_Interface&amp;diff=3194</id>
		<title>Talk:Validator.nu Web Service Interface</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Validator.nu_Web_Service_Interface&amp;diff=3194"/>
		<updated>2008-06-18T00:58:29Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: implementation feedback&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Implementation feedback ==&lt;br /&gt;
Just for fun I&#039;ve added sort-of compatible interface to the [http://hcard.geekhood.net hCard Validator].&lt;br /&gt;
&lt;br /&gt;
My Suggestions:&lt;br /&gt;
&lt;br /&gt;
* id field for messages, that uniquely identifies each problem (e.g &amp;quot;unknown-attribute&amp;quot;). This may allow clients to ignore certain warnings and accurately aggregate error statistics even if error message contains variable data or simply wording changes.&lt;br /&gt;
* if message contains variable data (e.g. &amp;quot;&#039;div&#039; not allowed in &#039;span&#039;&amp;quot;), the data could be additionally given in a separate array ([&amp;quot;div&amp;quot;,&amp;quot;span&amp;quot;]), to allow clients to localize messages using id + arguments.&lt;br /&gt;
* combinations of error types and subtypes are weird. It could be orthogonal severity {fatal|error|warning|info} and type {document|i/o|unsupported}, this way you could e.g. warn about i/o problems (like downgrading of https to http).&lt;br /&gt;
* message_html field to allow formatted messages (messages may contain code fragments, abbreviations or links and I&#039;d like to display these nicely to the user)&lt;br /&gt;
* field for additional, more verbose message or hint how to fix the problem (html formatted too)&lt;br /&gt;
* field for url to the relevant part of the specification&lt;br /&gt;
* possibility to specify non-line-oriented error location (in my implementation I don&#039;t track line numbers, but I could generate XPath path to the element)&lt;br /&gt;
* parse tree might contain code property which is just an XML serialisation of DOM (this is good enough for spotting misinterpreted markup)&lt;br /&gt;
* field or naming scheme for implementation-specific data?&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=2488</id>
		<title>Link Hashes</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=2488"/>
		<updated>2007-08-31T08:03:02Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: Undo revision 2486 by Special:Contributions/Usome (User talk:Usome)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many download sites, especially for software download, give hashes or digests for the file they distribute so that users can check the validity of the files once they&#039;ve downloaded it. The process for verifying the hash however isn&#039;t straightforward.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
A lot of software download pages already give you MD5 or SHA-1 digests values to check the validity of the downloaded file. Checking the file ensure that the downloaded file is same as the author of the page wanted to give you. Corrupted or tampered files can be detected that way.&lt;br /&gt;
&lt;br /&gt;
The problem is that there is no way to automate that verification process. To automate this process, a browser would need to extract the hash associated with the link on the original page.&lt;br /&gt;
&lt;br /&gt;
=== Current Usage ===&lt;br /&gt;
Some links to software download pages featuring hashes:&lt;br /&gt;
* Apple: [http://www.apple.com/support/downloads/securityupdate20060061039client.html Security Update 2006-006]&lt;br /&gt;
* [http://www.php.net/downloads.php PHP Downloads]&lt;br /&gt;
* Apache: [http://httpd.apache.org/download.cgi HTTP Server]&lt;br /&gt;
&lt;br /&gt;
Other examples can be found on the [http://microformats.org/wiki/hash-examples#Who_offers_MD5.2FSHA-1_checksums_with_software hash examples] page on the Microformat wiki.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
Easier discoverability of tampered files which could come from a mirror server being hacked. &lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== hash attribute ===&lt;br /&gt;
A hash attribute could contain a md5 checksum of the target file. If the hash of the downloaded file does not match the one from the link, the file is deleted or quarantined and the user is alerted of a potential security risk.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;...&amp;quot; hash=&amp;quot;b3187253c1667fac7d20bb762ad53967&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser keeps the hash in memory to compare it with the it hashes from the downloaded file. Once the file is downloaded, the the computed hash is compared against the expected hash.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;To be completed: what to do about non-download links, like links to other pages, when they have a hash?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Hash Microformat ===&lt;br /&gt;
The hash microformat provides a way to associate hash values with links:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;download&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;a rel=&amp;quot;bookmark&amp;quot; href=&amp;quot;...&amp;quot;&amp;gt;Download OpenOffice.org&lt;br /&gt;
     &amp;lt;span class=&amp;quot;checksum md5&amp;quot;&amp;gt;e0d123e5f316bef78bfdf5a008837577&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The microformat is better described on the [http://microformats.org/wiki/hash-examples hash-examples] page.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When a link is clicked, the browser check if it corresponds to the microformat (&#039;&#039;details to be added&#039;&#039;). If it is the hash value is extracted and, once the file is downloaded, the computed hash for the file is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
The microformat markup is heavier that it needs to be. It also force page authors to put the hash visible inside the link, or to apply specific stylesheets to hide it on visual browsers.&lt;br /&gt;
&lt;br /&gt;
=== Link Fingerprint ===&lt;br /&gt;
Append a digest for the file in the fragment identifier of the URL. The browser can then check the validity of the file when it downloads it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://example.com/file#!md5!b3187253c1667fac7d20bb762ad53967&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [http://www.gerv.net/security/link-fingerprints/ Link Fingerprints article] by Gervase Markham gives more details.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser check if the URL contains a hash. If the URL contains a hash, once the file is downloaded the computed hash is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
Work only for downloaded files; fragment identifiers are used in other ways for regular pages and PDF files opened in the browser with a plugin.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Content-MD5 HTTP Header ===&lt;br /&gt;
It has been suggested to use the [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15 Content-MD5] HTTP header. A tampered file on a hacked server is very likely to get its digest updated accordingly however.&lt;br /&gt;
&lt;br /&gt;
== Mailing List References ==&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007833.html Re: hash attribute] -- Tom Pike, Wed Nov 8 05:21:22 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Ian Hickson, Wed Nov 8 08:28:19 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007857.html Re: hash attribute] -- Gervase Markham, Thu Nov 9 09:23:32 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Michel Fortin, Tue Nov 14 08:53:43 PST 2006&lt;br /&gt;
&lt;br /&gt;
[[Category:Feature Request]]&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2229</id>
		<title>Drag&#039;n&#039;Drop Uploads</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2229"/>
		<updated>2007-05-02T13:47:37Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== The problem ===&lt;br /&gt;
Web applications cannot accept files from user&#039;s machine as easily and intuitively as native OS applications - users can&#039;t drop images from desktop right into documents edited in WYSIWYG editors, on-line file browsers, asset management interfaces of CMSes.&lt;br /&gt;
&lt;br /&gt;
Although browsers could allow &amp;lt;input type=file&amp;gt; controls to accept dropped files, drop zone would have to be limited to small area occupied by the control. This is not how applications usually work - they don&#039;t have area exclusively for dropping files, but entire window or regular UI controls react to dropped files.&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing inherently wrong with having &amp;lt;input type=file&amp;gt; with file browser, some users may even prefer this type of UI, but depending on type of application/user preference such UI may feel inefficient and unintuitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Use cases ===&lt;br /&gt;
* Dropping image from local machine (desktop, file explorer/finder window, another application) into WYSIWYG (contentEditable) editor to have image uploaded to server and inserted into edited document right under cursor - just like you can with office suites.&lt;br /&gt;
* Dropping image into textarea that uses BBcode or Wiki syntax to have image uploaded and appropriate image embedding syntax automatically inserted.&lt;br /&gt;
* Adding attachments in a webmail&lt;br /&gt;
* Web-based file browser/asset management interface&lt;br /&gt;
* Drag&#039;n&#039;drop customization of images in page templates, forum avatars, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
&lt;br /&gt;
=== The basic concept ===&lt;br /&gt;
&lt;br /&gt;
A universal IDREF attribute that would connect particular element in document (&#039;&#039;drop zone&#039;&#039;) with a &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; control.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;input type=file id=&#039;&#039;uploader&#039;&#039;&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div dropped-files=&#039;&#039;uploader&#039;&#039;&amp;gt;drop your files here!&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above example, files is dropped into &amp;lt;code&amp;gt;&amp;amp;lt;div&amp;gt;&amp;lt;/code&amp;gt; would be &amp;quot;redirected&amp;quot; to the &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element. &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; can use &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute to allow multiple files to be dropped at once.&lt;br /&gt;
&lt;br /&gt;
Drop zone doesn&#039;t have to be &amp;amp;lt;div&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;textarea dropped-files=&#039;&#039;uploader&#039;&#039;&amp;gt;write post and drop images to have [img]url[/img] added automagically!&amp;amp;lt;/textarea&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Algorithm also allows dropping files directly into &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;, without requiring any additional code.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;input type=file title=&amp;quot;drop files here!&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Drop zones can be nested (deepest-nested takes precedence). For ease of implementation and compatibility with HTML4 documents, &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; can act as a drop zone (with least precedence).&lt;br /&gt;
&lt;br /&gt;
=== The process ===&lt;br /&gt;
&lt;br /&gt;
==== Finding related &amp;lt;input type=file&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
These steps are supposed to allow dropping files directly into &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;, or into a designated drop zone. As a fallback a &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; can be assumed to be a drop zone. &lt;br /&gt;
&lt;br /&gt;
When user drops file(s) into the document:&lt;br /&gt;
&lt;br /&gt;
# Take element on which file(s) were dropped (&#039;&#039;drop target&#039;&#039;) - usually it will be target of &amp;lt;code&amp;gt;mouseup&amp;lt;/code&amp;gt; event.&lt;br /&gt;
# If the element is &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
# If the element does not have &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute, check its parent. Continue checking ancestors until the attribute is found or there are no more parent elements.&lt;br /&gt;
# If element with &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute was found:&lt;br /&gt;
## Find element referenced by &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute &lt;br /&gt;
## Verify that referenced element it&#039;s an &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## If above conditions are met &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
## Otherwise ignore dropped files or perform browser&#039;s default action and abort these steps.&lt;br /&gt;
# Start again from the &#039;&#039;drop target&#039;&#039;&lt;br /&gt;
# If the element is not &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt;, check its parent. Continue checking ancestors until &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; is found or there are no more parent elements.&lt;br /&gt;
# If &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; is found:&lt;br /&gt;
## Find first &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; that belongs to that form&lt;br /&gt;
## If element can be found, &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
# Otherwise ignore dropped files or perform browser&#039;s default action.&lt;br /&gt;
&lt;br /&gt;
(this algorithm can be optimized to walk up the DOM tree only once)&lt;br /&gt;
&lt;br /&gt;
==== The next section ====&lt;br /&gt;
&lt;br /&gt;
# Synchronously fire &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event on &#039;&#039;drop target&#039;&#039;&lt;br /&gt;
# If &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event was cancelled, ignore dropped files and abort these steps.&lt;br /&gt;
# Set value of &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; just as if files were chosen using regular method (including setting multiple files if &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute permits) and fire &amp;lt;code&amp;gt;change&amp;lt;/code&amp;gt; event on &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
&lt;br /&gt;
Dropping is limited to one DOM tree (does not cross frames). Scripts still can&#039;t set value of &amp;amp;lt;input type=file&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The only new risk is that script may know exactly when user has chosen a file and may start uploading it immediately (IIRC currently major browsers don&#039;t trigger &amp;lt;code&amp;gt;change&amp;lt;/code&amp;gt; event on file controls). &lt;br /&gt;
&lt;br /&gt;
Browsers which used to open files dropped into document area will probably have to ask user for confirmation when first file is dropped to prevent websites from stealing files from users unaware of the new feature.&lt;br /&gt;
&lt;br /&gt;
=== Open Issues ===&lt;br /&gt;
&lt;br /&gt;
==== Filesdropped Event ====&lt;br /&gt;
* It should reference relevant &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Provide some information about dropped file(s) (file name, mime type, size?)&lt;br /&gt;
* If possible, provide information about exact place where event occurred (using &amp;lt;code&amp;gt;Range&amp;lt;/code&amp;gt; object for WYSIWYG?)&lt;br /&gt;
&lt;br /&gt;
==== Other issues ====&lt;br /&gt;
* How would script mark areas where files can&#039;t be dropped (temporarily/conditionally) allowing browser to dynamically change cursor? Is script fiddling with CSS cursor property and canceling &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event enough?&lt;br /&gt;
* Since the solution requires form and &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element, backwards compatibility can be maintained. The problem is script may rely on files being set via drag&#039;n&#039;drop and may not act properly when user uses file control directly. &lt;br /&gt;
* Many elements could reference single &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;. Is this desirable? Disallowing that might help backwards compatibility (it would be more likely that authors prepare separate &amp;amp;lt;form&amp;gt;s pre-filled with necessary data), OTOH it would be easier for authors to have single uploader for multiple items on the page.&lt;br /&gt;
* Would it be possible to have previews of images and documents available prior upload? Import into &amp;lt;code&amp;gt;&amp;amp;lt;canvas&amp;gt;&amp;lt;/code&amp;gt; without upload?&lt;br /&gt;
* Should the form be submitted asynchronously and automatically? It would allow browser to save user&#039;s time by uploading immediately and in the background. There would be possibility of uploading multiple files at the same time (alternatively they could be queued/batched).&lt;br /&gt;
* If upload is async, script would have to receive information from the server once upload finishes (WYSIWYG editors would need to put placeholder in the document while file uploads and replace it with the real thing afterwards). Currently it can be hacked via &amp;lt;code&amp;gt;&amp;amp;lt;from replace=values&amp;gt;&amp;lt;/code&amp;gt; and hidden input element or &amp;lt;code&amp;gt;&amp;amp;lt;from target=hidden_iframe&amp;gt;&amp;lt;/code&amp;gt; and cross-frame scripts.&lt;br /&gt;
&lt;br /&gt;
== Related implementations ==&lt;br /&gt;
&lt;br /&gt;
IE supports [http://msdn2.microsoft.com/en-us/library/ms537658.aspx dataTransfer] object which can be used for handling drag&#039;n&#039;drop and clipboard copying of text and URLs. This interface could be reused+extended for files.&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2224</id>
		<title>Drag&#039;n&#039;Drop Uploads</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2224"/>
		<updated>2007-04-26T20:39:47Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: /* The basic concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== The problem ===&lt;br /&gt;
Web applications cannot accept files from user&#039;s machine as easily and intuitively as native OS applications - users can&#039;t drop images from desktop right into documents edited in WYSIWYG editors, on-line file browsers, asset management interfaces of CMSes.&lt;br /&gt;
&lt;br /&gt;
Although browsers could allow &amp;lt;input type=file&amp;gt; controls to accept dropped files, drop zone would have to be limited to small area occupied by the control. This is not how applications usually work - they don&#039;t have area exclusively for dropping files, but entire window or regular UI controls react to dropped files.&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing inherently wrong with having &amp;lt;input type=file&amp;gt; with file browser, some users may even prefer this type of UI, but depending on type of application/user preference such UI may feel inefficient and unintuitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Use cases ===&lt;br /&gt;
* Dropping image from local machine (desktop, file explorer/finder window, another application) into WYSIWYG (contentEditable) editor to have image uploaded to server and inserted into edited document right under cursor - just like you can with office suites.&lt;br /&gt;
* Dropping image into textarea that uses BBcode or Wiki syntax to have image uploaded and appropriate image embedding syntax automatically inserted.&lt;br /&gt;
* Adding attachments in a webmail&lt;br /&gt;
* Web-based file browser/asset management interface&lt;br /&gt;
* Drag&#039;n&#039;drop customization of images in page templates, forum avatars, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
&lt;br /&gt;
=== The basic concept ===&lt;br /&gt;
&lt;br /&gt;
A universal IDREF attribute that would connect particular element in document (&#039;&#039;drop zone&#039;&#039;) with a &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; control.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;input type=file id=&#039;&#039;uploader&#039;&#039;&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div dropped-files=&#039;&#039;uploader&#039;&#039;&amp;gt;drop your files here!&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above example, files is dropped into &amp;lt;code&amp;gt;&amp;amp;lt;div&amp;gt;&amp;lt;/code&amp;gt; would be &amp;quot;redirected&amp;quot; to the &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element. &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; can use &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute to allow multiple files to be dropped at once.&lt;br /&gt;
&lt;br /&gt;
Drop zone doesn&#039;t have to be &amp;amp;lt;div&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;textarea dropped-files=&#039;&#039;uploader&#039;&#039;&amp;gt;write post and drop images to have [img]url[/img] added automagically!&amp;amp;lt;/textarea&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Algorithm also allows dropping files directly into &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;, without requiring any additional code.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;input type=file title=&amp;quot;drop files here!&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Drop zones can be nested (deepest-nested takes precedence). For ease of implementation and compatibility with HTML4 documents, &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; can act as a drop zone (with least precedence).&lt;br /&gt;
&lt;br /&gt;
=== The process ===&lt;br /&gt;
&lt;br /&gt;
==== Finding related &amp;lt;input type=file&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
These steps are supposed to allow dropping files directly into &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;, or into a designated drop zone. As a fallback a &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; can be assumed to be a drop zone. &lt;br /&gt;
&lt;br /&gt;
When user drops file(s) into the document:&lt;br /&gt;
&lt;br /&gt;
# Take element on which file(s) were dropped (&#039;&#039;drop target&#039;&#039;) - usually it will be target of &amp;lt;code&amp;gt;mouseup&amp;lt;/code&amp;gt; event.&lt;br /&gt;
# If the element is &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
# If the element does not have &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute, check its parent. Continue checking ancestors until the attribute is found or there are no more parent elements.&lt;br /&gt;
# If element with &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute was found:&lt;br /&gt;
## Find element referenced by &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute &lt;br /&gt;
## Verify that referenced element it&#039;s an &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## If above conditions are met &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
## Otherwise ignore dropped files or perform browser&#039;s default action and abort these steps.&lt;br /&gt;
# Start again from the &#039;&#039;drop target&#039;&#039;&lt;br /&gt;
# If the element is not &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt;, check its parent. Continue checking ancestors until &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; is found or there are no more parent elements.&lt;br /&gt;
# If &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; is found:&lt;br /&gt;
## Find first &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; that belongs to that form&lt;br /&gt;
## If element can be found, &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
# Otherwise ignore dropped files or perform browser&#039;s default action.&lt;br /&gt;
&lt;br /&gt;
(this algorithm can be optimized to walk up the DOM tree only once)&lt;br /&gt;
&lt;br /&gt;
==== The next section ====&lt;br /&gt;
&lt;br /&gt;
# Synchronously fire &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event on &#039;&#039;drop target&#039;&#039;&lt;br /&gt;
# If &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event was cancelled, ignore dropped files and abort these steps.&lt;br /&gt;
# Set value of &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; just as if files were chosen using regular method (including setting multiple files if &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute permits) and fire &amp;lt;code&amp;gt;change&amp;lt;/code&amp;gt; event on &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
&lt;br /&gt;
Dropping is limited to one DOM tree (does not cross frames). Scripts still can&#039;t set value of &amp;amp;lt;input type=file&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The only new risk is that script may know exactly when user has chosen a file and may start uploading it immediately (IIRC currently major browsers don&#039;t trigger &amp;lt;code&amp;gt;change&amp;lt;/code&amp;gt; event on file controls). &lt;br /&gt;
&lt;br /&gt;
Browsers which used to open files dropped into document area will probably have to ask user for confirmation when first file is dropped to prevent websites from stealing files from users unaware of the new feature.&lt;br /&gt;
&lt;br /&gt;
=== Open Issues ===&lt;br /&gt;
&lt;br /&gt;
==== Filesdropped Event ====&lt;br /&gt;
* It should reference relevant &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Provide some information about dropped file(s) (file name, mime type, size?)&lt;br /&gt;
* If possible, provide information about exact place where event occurred (using &amp;lt;code&amp;gt;Range&amp;lt;/code&amp;gt; object for WYSIWYG?)&lt;br /&gt;
&lt;br /&gt;
==== Other issues ====&lt;br /&gt;
* How would script mark areas where files can&#039;t be dropped (temporarily/conditionally) allowing browser to dynamically change cursor? Is script fiddling with CSS cursor property and canceling &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event enough?&lt;br /&gt;
* Since the solution requires form and &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element, backwards compatibility can be maintained. The problem is script may rely on files being set via drag&#039;n&#039;drop and may not act properly when user uses file control directly. &lt;br /&gt;
* Many elements could reference single &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;. Is this desirable? Disallowing that might help backwards compatibility (it would be more likely that authors prepare separate &amp;amp;lt;form&amp;gt;s pre-filled with necessary data), OTOH it would be easier for authors to have single uploader for multiple items on the page.&lt;br /&gt;
* Would it be possible to have previews of images and documents available prior upload? Import into &amp;lt;code&amp;gt;&amp;amp;lt;canvas&amp;gt;&amp;lt;/code&amp;gt; without upload?&lt;br /&gt;
* Should the form be submitted asynchronously and automatically? It would allow browser to save user&#039;s time by uploading immediately and in the background. There would be possibility of uploading multiple files at the same time (alternatively they could be queued/batched).&lt;br /&gt;
* If upload is async, script would have to receive information from the server once upload finishes (WYSIWYG editors would need to put placeholder in the document while file uploads and replace it with the real thing afterwards). Currently it can be hacked via &amp;lt;code&amp;gt;&amp;amp;lt;from replace=values&amp;gt;&amp;lt;/code&amp;gt; and hidden input element or &amp;lt;code&amp;gt;&amp;amp;lt;from target=hidden_iframe&amp;gt;&amp;lt;/code&amp;gt; and cross-frame scripts.&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2223</id>
		<title>Drag&#039;n&#039;Drop Uploads</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2223"/>
		<updated>2007-04-26T20:24:38Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: /* Open Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== The problem ===&lt;br /&gt;
Web applications cannot accept files from user&#039;s machine as easily and intuitively as native OS applications - users can&#039;t drop images from desktop right into documents edited in WYSIWYG editors, on-line file browsers, asset management interfaces of CMSes.&lt;br /&gt;
&lt;br /&gt;
Although browsers could allow &amp;lt;input type=file&amp;gt; controls to accept dropped files, drop zone would have to be limited to small area occupied by the control. This is not how applications usually work - they don&#039;t have area exclusively for dropping files, but entire window or regular UI controls react to dropped files.&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing inherently wrong with having &amp;lt;input type=file&amp;gt; with file browser, some users may even prefer this type of UI, but depending on type of application/user preference such UI may feel inefficient and unintuitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Use cases ===&lt;br /&gt;
* Dropping image from local machine (desktop, file explorer/finder window, another application) into WYSIWYG (contentEditable) editor to have image uploaded to server and inserted into edited document right under cursor - just like you can with office suites.&lt;br /&gt;
* Dropping image into textarea that uses BBcode or Wiki syntax to have image uploaded and appropriate image embedding syntax automatically inserted.&lt;br /&gt;
* Adding attachments in a webmail&lt;br /&gt;
* Web-based file browser/asset management interface&lt;br /&gt;
* Drag&#039;n&#039;drop customization of images in page templates, forum avatars, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
&lt;br /&gt;
=== The basic concept ===&lt;br /&gt;
&lt;br /&gt;
A universal IDREF attribute that would connect particular element in document with a &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; control.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;input type=file id=&#039;&#039;uploader&#039;&#039;&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div dropped-files=&#039;&#039;uploader&#039;&#039;&amp;gt;drop your files here!&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above example, when file is dropped onto &amp;lt;div&amp;gt;, browser would &amp;quot;redirect&amp;quot; the file to &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element. &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; can use &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute to allow multiple files to be dropped at once.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; alternative approach would be to use DOM event triggered when a file is dropped. That could be much more flexible, but probably would require giving JS method for passing file information from event object to chosen &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element - with complexity of DOM events and inherent insecurity of JS prototypes it could be too difficult to implement securely. With IDREF browser can keep full control and have process of setting &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; hardcoded.&lt;br /&gt;
&lt;br /&gt;
=== The process ===&lt;br /&gt;
&lt;br /&gt;
==== Finding related &amp;lt;input type=file&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
These steps are supposed to allow dropping files directly into &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;, or into a designated drop zone. As a fallback a &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; can be assumed to be a drop zone. &lt;br /&gt;
&lt;br /&gt;
When user drops file(s) into the document:&lt;br /&gt;
&lt;br /&gt;
# Take element on which file(s) were dropped (&#039;&#039;drop target&#039;&#039;) - usually it will be target of &amp;lt;code&amp;gt;mouseup&amp;lt;/code&amp;gt; event.&lt;br /&gt;
# If the element is &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
# If the element does not have &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute, check its parent. Continue checking ancestors until the attribute is found or there are no more parent elements.&lt;br /&gt;
# If element with &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute was found:&lt;br /&gt;
## Find element referenced by &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute &lt;br /&gt;
## Verify that referenced element it&#039;s an &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## If above conditions are met &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
## Otherwise ignore dropped files or perform browser&#039;s default action and abort these steps.&lt;br /&gt;
# Start again from the &#039;&#039;drop target&#039;&#039;&lt;br /&gt;
# If the element is not &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt;, check its parent. Continue checking ancestors until &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; is found or there are no more parent elements.&lt;br /&gt;
# If &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; is found:&lt;br /&gt;
## Find first &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; that belongs to that form&lt;br /&gt;
## If element can be found, &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
# Otherwise ignore dropped files or perform browser&#039;s default action.&lt;br /&gt;
&lt;br /&gt;
(this algorithm can be optimized to walk up the DOM tree only once)&lt;br /&gt;
&lt;br /&gt;
==== The next section ====&lt;br /&gt;
&lt;br /&gt;
# Synchronously fire &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event on &#039;&#039;drop target&#039;&#039;&lt;br /&gt;
# If &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event was cancelled, ignore dropped files and abort these steps.&lt;br /&gt;
# Set value of &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; just as if files were chosen using regular method (including setting multiple files if &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute permits) and fire &amp;lt;code&amp;gt;change&amp;lt;/code&amp;gt; event on &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
&lt;br /&gt;
Dropping is limited to one DOM tree (does not cross frames). Scripts still can&#039;t set value of &amp;amp;lt;input type=file&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The only new risk is that script may know exactly when user has chosen a file and may start uploading it immediately (IIRC currently major browsers don&#039;t trigger &amp;lt;code&amp;gt;change&amp;lt;/code&amp;gt; event on file controls). &lt;br /&gt;
&lt;br /&gt;
Browsers which used to open files dropped into document area will probably have to ask user for confirmation when first file is dropped to prevent websites from stealing files from users unaware of the new feature.&lt;br /&gt;
&lt;br /&gt;
=== Open Issues ===&lt;br /&gt;
&lt;br /&gt;
==== Filesdropped Event ====&lt;br /&gt;
* It should reference relevant &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Provide some information about dropped file(s) (file name, mime type, size?)&lt;br /&gt;
* If possible, provide information about exact place where event occurred (using &amp;lt;code&amp;gt;Range&amp;lt;/code&amp;gt; object for WYSIWYG?)&lt;br /&gt;
&lt;br /&gt;
==== Other issues ====&lt;br /&gt;
* How would script mark areas where files can&#039;t be dropped (temporarily/conditionally) allowing browser to dynamically change cursor? Is script fiddling with CSS cursor property and canceling &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event enough?&lt;br /&gt;
* Since the solution requires form and &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element, backwards compatibility can be maintained. The problem is script may rely on files being set via drag&#039;n&#039;drop and may not act properly when user uses file control directly. &lt;br /&gt;
* Many elements could reference single &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;. Is this desirable? Disallowing that might help backwards compatibility (it would be more likely that authors prepare separate &amp;amp;lt;form&amp;gt;s pre-filled with necessary data), OTOH it would be easier for authors to have single uploader for multiple items on the page.&lt;br /&gt;
* Would it be possible to have previews of images and documents available prior upload? Import into &amp;lt;code&amp;gt;&amp;amp;lt;canvas&amp;gt;&amp;lt;/code&amp;gt; without upload?&lt;br /&gt;
* Should the form be submitted asynchronously and automatically? It would allow browser to save user&#039;s time by uploading immediately and in the background. There would be possibility of uploading multiple files at the same time (alternatively they could be queued/batched).&lt;br /&gt;
* If upload is async, script would have to receive information from the server once upload finishes (WYSIWYG editors would need to put placeholder in the document while file uploads and replace it with the real thing afterwards). Currently it can be hacked via &amp;lt;code&amp;gt;&amp;amp;lt;from replace=values&amp;gt;&amp;lt;/code&amp;gt; and hidden input element or &amp;lt;code&amp;gt;&amp;amp;lt;from target=hidden_iframe&amp;gt;&amp;lt;/code&amp;gt; and cross-frame scripts.&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2222</id>
		<title>Drag&#039;n&#039;Drop Uploads</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2222"/>
		<updated>2007-04-26T20:04:35Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: /* The process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== The problem ===&lt;br /&gt;
Web applications cannot accept files from user&#039;s machine as easily and intuitively as native OS applications - users can&#039;t drop images from desktop right into documents edited in WYSIWYG editors, on-line file browsers, asset management interfaces of CMSes.&lt;br /&gt;
&lt;br /&gt;
Although browsers could allow &amp;lt;input type=file&amp;gt; controls to accept dropped files, drop zone would have to be limited to small area occupied by the control. This is not how applications usually work - they don&#039;t have area exclusively for dropping files, but entire window or regular UI controls react to dropped files.&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing inherently wrong with having &amp;lt;input type=file&amp;gt; with file browser, some users may even prefer this type of UI, but depending on type of application/user preference such UI may feel inefficient and unintuitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Use cases ===&lt;br /&gt;
* Dropping image from local machine (desktop, file explorer/finder window, another application) into WYSIWYG (contentEditable) editor to have image uploaded to server and inserted into edited document right under cursor - just like you can with office suites.&lt;br /&gt;
* Dropping image into textarea that uses BBcode or Wiki syntax to have image uploaded and appropriate image embedding syntax automatically inserted.&lt;br /&gt;
* Adding attachments in a webmail&lt;br /&gt;
* Web-based file browser/asset management interface&lt;br /&gt;
* Drag&#039;n&#039;drop customization of images in page templates, forum avatars, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
&lt;br /&gt;
=== The basic concept ===&lt;br /&gt;
&lt;br /&gt;
A universal IDREF attribute that would connect particular element in document with a &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; control.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;input type=file id=&#039;&#039;uploader&#039;&#039;&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div dropped-files=&#039;&#039;uploader&#039;&#039;&amp;gt;drop your files here!&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above example, when file is dropped onto &amp;lt;div&amp;gt;, browser would &amp;quot;redirect&amp;quot; the file to &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element. &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; can use &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute to allow multiple files to be dropped at once.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; alternative approach would be to use DOM event triggered when a file is dropped. That could be much more flexible, but probably would require giving JS method for passing file information from event object to chosen &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element - with complexity of DOM events and inherent insecurity of JS prototypes it could be too difficult to implement securely. With IDREF browser can keep full control and have process of setting &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; hardcoded.&lt;br /&gt;
&lt;br /&gt;
=== The process ===&lt;br /&gt;
&lt;br /&gt;
==== Finding related &amp;lt;input type=file&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
These steps are supposed to allow dropping files directly into &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;, or into a designated drop zone. As a fallback a &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; can be assumed to be a drop zone. &lt;br /&gt;
&lt;br /&gt;
When user drops file(s) into the document:&lt;br /&gt;
&lt;br /&gt;
# Take element on which file(s) were dropped (&#039;&#039;drop target&#039;&#039;) - usually it will be target of &amp;lt;code&amp;gt;mouseup&amp;lt;/code&amp;gt; event.&lt;br /&gt;
# If the element is &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
# If the element does not have &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute, check its parent. Continue checking ancestors until the attribute is found or there are no more parent elements.&lt;br /&gt;
# If element with &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute was found:&lt;br /&gt;
## Find element referenced by &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute &lt;br /&gt;
## Verify that referenced element it&#039;s an &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## If above conditions are met &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
## Otherwise ignore dropped files or perform browser&#039;s default action and abort these steps.&lt;br /&gt;
# Start again from the &#039;&#039;drop target&#039;&#039;&lt;br /&gt;
# If the element is not &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt;, check its parent. Continue checking ancestors until &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; is found or there are no more parent elements.&lt;br /&gt;
# If &amp;lt;code&amp;gt;&amp;amp;lt;form&amp;gt;&amp;lt;/code&amp;gt; is found:&lt;br /&gt;
## Find first &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; that belongs to that form&lt;br /&gt;
## If element can be found, &#039;&#039;&#039;proceed to the next section.&#039;&#039;&#039;&lt;br /&gt;
# Otherwise ignore dropped files or perform browser&#039;s default action.&lt;br /&gt;
&lt;br /&gt;
(this algorithm can be optimized to walk up the DOM tree only once)&lt;br /&gt;
&lt;br /&gt;
==== The next section ====&lt;br /&gt;
&lt;br /&gt;
# Synchronously fire &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event on &#039;&#039;drop target&#039;&#039;&lt;br /&gt;
# If &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event was cancelled, ignore dropped files and abort these steps.&lt;br /&gt;
# Set value of &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; just as if files were chosen using regular method (including setting multiple files if &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute permits) and fire &amp;lt;code&amp;gt;change&amp;lt;/code&amp;gt; event on &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Open Issues ===&lt;br /&gt;
What&#039;s the best way to get information about dropped files and where event has occurred? It will be needed for inserting markup into WYSIWYG/textarea.&lt;br /&gt;
&lt;br /&gt;
How would script mark areas where files can&#039;t be dropped (temporarily/conditionally) allowing browser to dynamically change cursor? Is script fiddling with CSS cursor property (and clearing value of &amp;amp;lt;input&amp;gt;) enough?&lt;br /&gt;
&lt;br /&gt;
Since the solution requires form and &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element, backwards compatibility can be maintained. The problem is script may rely on files being set via drag&#039;n&#039;drop and may not act properly when user uses file control directly. &lt;br /&gt;
&lt;br /&gt;
Many elements could reference single &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;. Is this desirable? Disallowing that might help backwards compatibility (it would be more likely that there were separate &amp;amp;lt;form&amp;gt;s pre-filled with necessary data), OTOH it would be easier for authors to have single uploader for multiple items on the page.&lt;br /&gt;
&lt;br /&gt;
Would it be possible to have previews of images and documents available prior upload? Import into &amp;lt;code&amp;gt;&amp;amp;lt;canvas&amp;gt;&amp;lt;/code&amp;gt; without upload?&lt;br /&gt;
&lt;br /&gt;
Should the form be submitted asynchronously and automatically? It would allow browser to save user&#039;s time by uploading immediately and in the background. There would be possibility of uploading multiple files at the same time (alternatively they could be queued/batched).&lt;br /&gt;
&lt;br /&gt;
If upload is async, script would have to receive information from the server once upload finishes (WYSIWYG editors would need to put placeholder in the document while file uploads and replace it with the real thing afterwards). Currently it can be hacked via &amp;lt;code&amp;gt;&amp;amp;lt;from replace=values&amp;gt;&amp;lt;/code&amp;gt; and hidden input element or &amp;lt;code&amp;gt;&amp;amp;lt;from target=hidden_iframe&amp;gt;&amp;lt;/code&amp;gt; and cross-frame scripts.&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2221</id>
		<title>Drag&#039;n&#039;Drop Uploads</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Drag%27n%27Drop_Uploads&amp;diff=2221"/>
		<updated>2007-04-25T23:04:12Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: New page: === The problem === Web applications cannot accept files from user&amp;#039;s machine as easily and intuitively as native OS applications - users can&amp;#039;t drop images from desktop right into documents...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== The problem ===&lt;br /&gt;
Web applications cannot accept files from user&#039;s machine as easily and intuitively as native OS applications - users can&#039;t drop images from desktop right into documents edited in WYSIWYG editors, on-line file browsers, asset management interfaces of CMSes.&lt;br /&gt;
&lt;br /&gt;
Although browsers could allow &amp;lt;input type=file&amp;gt; controls to accept dropped files, drop zone would have to be limited to small area occupied by the control. This is not how applications usually work - they don&#039;t have area exclusively for dropping files, but entire window or regular UI controls react to dropped files.&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing inherently wrong with having &amp;lt;input type=file&amp;gt; with file browser, some users may even prefer this type of UI, but depending on type of application/user preference such UI may feel inefficient and unintuitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Use cases ===&lt;br /&gt;
* Dropping image from local machine (desktop, file explorer/finder window, another application) into WYSIWYG (contentEditable) editor to have image uploaded to server and inserted into edited document right under cursor - just like you can with office suites.&lt;br /&gt;
* Dropping image into textarea that uses BBcode or Wiki syntax to have image uploaded and appropriate image embedding syntax automatically inserted.&lt;br /&gt;
* Adding attachments in a webmail&lt;br /&gt;
* Web-based file browser/asset management interface&lt;br /&gt;
* Drag&#039;n&#039;drop customization of images in page templates, forum avatars, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed solution ==&lt;br /&gt;
&lt;br /&gt;
=== The basic concept ===&lt;br /&gt;
&lt;br /&gt;
A universal IDREF attribute that would connect particular element in document with a &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; control.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;input type=file id=&#039;&#039;uploader&#039;&#039;&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div dropped-files=&#039;&#039;uploader&#039;&#039;&amp;gt;drop your files here!&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above example, when file is dropped onto &amp;lt;div&amp;gt;, browser would &amp;quot;redirect&amp;quot; the file to &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element. &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; can use &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute to allow multiple files to be dropped at once.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; alternative approach would be to use DOM event triggered when a file is dropped. That could be much more flexible, but probably would require giving JS method for passing file information from event object to chosen &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element - with complexity of DOM events and inherent insecurity of JS prototypes it could be too difficult to implement securely. With IDREF browser can keep full control and have process of setting &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt; hardcoded.&lt;br /&gt;
&lt;br /&gt;
=== The process ===&lt;br /&gt;
&lt;br /&gt;
When user drops file(s) into the document:&lt;br /&gt;
&lt;br /&gt;
# Take element on which file(s) were dropped (that&#039;s target of &amp;lt;code&amp;gt;mouseup&amp;lt;/code&amp;gt; event)&lt;br /&gt;
# If the element does not have &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute, check its parent. Continue checking ancestors until the attribute is found or there are no more parent elements.&lt;br /&gt;
# If no ancestor with &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; was found, ignore dropped files or perform browser&#039;s default action and abort these steps.&lt;br /&gt;
# Find element referenced by &amp;lt;code&amp;gt;dropped-files&amp;lt;/code&amp;gt; attribute and verify it&#039;s &amp;lt;code&amp;gt;&amp;amp;lt;input type=file&amp;gt;&amp;lt;/code&amp;gt;. If this element can&#039;t be found or is not a file input, ignore dropped files or perform browser&#039;s default action and abort these steps.&lt;br /&gt;
# Set value of &amp;lt;input&amp;gt; just as if files were chosen using regular method (including setting multiple files if &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attribute permits)&lt;br /&gt;
# ?? Fire &amp;lt;code&amp;gt;change&amp;lt;/code&amp;gt; event (&amp;lt;code&amp;gt;formchange&amp;lt;/code&amp;gt;? &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt;?) [ on which element? &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; or drop target? how would one find where files were dropped? (Range object with position within related textarea/contentEditable would be useful) ]&lt;br /&gt;
# ?? Should the form be submitted automatically? For example form could be submitted asynchronously unless script objects to it using &amp;lt;code&amp;gt;preventDefault/stopPropagation&amp;lt;/code&amp;gt; of &amp;lt;code&amp;gt;filesdropped&amp;lt;/code&amp;gt; event&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Issues ===&lt;br /&gt;
What&#039;s the best way to get information about dropped files and where event has occurred? It will be needed for inserting markup into WYSIWYG/textarea.&lt;br /&gt;
&lt;br /&gt;
How would script mark areas where files can&#039;t be dropped (temporarily/conditionally) allowing browser to dynamically change cursor? Is script fiddling with CSS cursor property (and clearing value of &amp;amp;lt;input&amp;gt;) enough?&lt;br /&gt;
&lt;br /&gt;
Since the solution requires form and &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt; element, backwards compatibility can be maintained. The problem is script may rely on files being set via drag&#039;n&#039;drop and may not act properly when user uses file control directly. &lt;br /&gt;
&lt;br /&gt;
Many elements could reference single &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;gt;&amp;lt;/code&amp;gt;. Is this desirable? Disallowing that might help backwards compatibility (it would be more likely that there were separate &amp;amp;lt;form&amp;gt;s pre-filled with necessary data), OTOH it would be easier for authors to have single uploader for multiple items on the page.&lt;br /&gt;
&lt;br /&gt;
Would it be possible to have previews of images and documents available prior upload? Import into &amp;lt;code&amp;gt;&amp;amp;lt;canvas&amp;gt;&amp;lt;/code&amp;gt; without upload?&lt;br /&gt;
&lt;br /&gt;
Should the form be submitted asynchronously and automatically? It would allow browser to save user&#039;s time by uploading immediately and in the background. There would be possibility of uploading multiple files at the same time (alternatively they could be queued/batched).&lt;br /&gt;
&lt;br /&gt;
If upload is async, script would have to receive information from the server once upload finishes (WYSIWYG editors would need to put placeholder in the document while file uploads and replace it with the real thing afterwards). Currently it can be hacked via &amp;lt;code&amp;gt;&amp;amp;lt;from replace=values&amp;gt;&amp;lt;/code&amp;gt; and hidden input element or &amp;lt;code&amp;gt;&amp;amp;lt;from target=hidden_iframe&amp;gt;&amp;lt;/code&amp;gt; and cross-frame scripts.&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Feature_Proposals&amp;diff=2220</id>
		<title>Feature Proposals</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Feature_Proposals&amp;diff=2220"/>
		<updated>2007-04-25T20:34:22Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: /* Document Markup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains a list of the problems for which feature requests have been made. Linked problem pages contain the document of the problem and their relevant solutions. Obviously, we want to keep HTML as simple as possible. That means not everyone will get what they want. Having good documentation for the problems at hand will help all of us work out what is most important.&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
Before proposing a feature, please read [http://blog.whatwg.org/proposing-features Proposing features].  If you want to add a feature request, start by copying the [[Problem Solving]] template page onto a new page and fill out as much information as you can.&lt;br /&gt;
&lt;br /&gt;
You don&#039;t have to provide detailed answers for everything straight away.  The most important information to provide at first is the problem description.  Once we have detailed descriptions, use cases and an understanding of the limitations with existing markup, we can then begin to discuss the best way in which to address the problems and work out more of the more technical details.&lt;br /&gt;
&lt;br /&gt;
== Document Markup ==&lt;br /&gt;
* [[Dialogue]]&lt;br /&gt;
* [[Annotation]]&lt;br /&gt;
* [[Footnotes]]&lt;br /&gt;
* [[Sidenotes]]&lt;br /&gt;
* [[Image Caption]]&lt;br /&gt;
* [[Inline Math]]&lt;br /&gt;
* [[Layout tables]]&lt;br /&gt;
* [[Drag&#039;n&#039;Drop Uploads]]&lt;br /&gt;
&lt;br /&gt;
== DOM Scripting ==&lt;br /&gt;
* [[Text in Canvas]]&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [[Link Hashes]]&lt;br /&gt;
* [[Digital Signatures]]&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
This list of features needs to be sorted out.  They&#039;ve come from all the [http://del.icio.us/lachlan.hunt/WHATWG feedback provided on blogs] over the past few weeks.&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t render quotation marks around &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt; elements.&lt;br /&gt;
* Make form validation easier&lt;br /&gt;
** &amp;lt;code&amp;gt;required&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
** &amp;lt;code&amp;gt;maxlength&amp;lt;/code&amp;gt; attribute for textarea&lt;br /&gt;
** &amp;lt;code&amp;gt;pattern&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
** &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt;&lt;br /&gt;
* New Form Controls&lt;br /&gt;
** Search fields&lt;br /&gt;
** Combo boxes&lt;br /&gt;
** Date/Time&lt;br /&gt;
** E-mail&lt;br /&gt;
** Int&lt;br /&gt;
** Long&lt;br /&gt;
** Unsigned&lt;br /&gt;
** Float&lt;br /&gt;
** Number&lt;br /&gt;
** Currency&lt;br /&gt;
** URL&lt;br /&gt;
* WYSIWIG Editor (&amp;lt;code&amp;gt;contentEditable&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Placeholder attribute&lt;br /&gt;
* Captions for images&lt;br /&gt;
* Bring back the &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; attributes for ordered lists.&lt;br /&gt;
* Bring back the &amp;lt;code&amp;gt;menu&amp;lt;/code&amp;gt; element&lt;br /&gt;
* Require XHTML-link syntax for HTML&lt;br /&gt;
* Caption/label/list header for lists&lt;br /&gt;
* Include the &amp;lt;code&amp;gt;role&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* Allow &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; on all elements&lt;br /&gt;
* Make it easier to mark up blocks of code&lt;br /&gt;
* Allow block level elements inside paragraphs&lt;br /&gt;
* “a tag that could hold &amp;quot;bad grammar&amp;quot; and not have any effect on the validation (sort of like a document.write from JavaScript) and would terminate all unclosed items at the end of the element (like TDs tend to do).”&lt;br /&gt;
* &amp;lt;code&amp;gt;blink&amp;lt;/code&amp;gt;!&lt;br /&gt;
* Fix the &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt; element.&lt;br /&gt;
* Unify &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;, &amp;lt;/code&amp;gt;embed&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;iframe&amp;lt;/code&amp;gt; into a single element&lt;br /&gt;
* Headers and footers&lt;br /&gt;
* A mechanism to include content from an external source (e.g. &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt;, perhaps like XInclude)&lt;br /&gt;
* A &amp;lt;code&amp;gt;corner&amp;lt;/code&amp;gt; element (presumably for making rounded corners)&lt;br /&gt;
* Markup for advertisements&lt;br /&gt;
* Easier column layouts&lt;br /&gt;
* A &amp;lt;code&amp;gt;foot&amp;lt;/code&amp;gt; element for containing scripts at the bottom of the page, or something to help deal with cross-browser load events.&lt;br /&gt;
* Key Generation/Certificate management (The &amp;lt;code&amp;gt;keygen&amp;lt;/code&amp;gt; element)&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Link_Hashes&amp;diff=2219</id>
		<title>Talk:Link Hashes</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Link_Hashes&amp;diff=2219"/>
		<updated>2007-04-24T09:59:39Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: Metalink?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Link Fingerprint ====&lt;br /&gt;
&lt;br /&gt;
Just a note to say that while this is certainly out of scope for HTML, it&#039;s nonetheless a good solution, and mentioning it there, with enough details, can serve of a justification to not include other proposed solutions in the spec. --[[User:Michel Fortin|Michel Fortin]] 09:56, 17 November 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== Metalink? ==&lt;br /&gt;
&lt;br /&gt;
http://www.metalinker.org/&lt;br /&gt;
&lt;br /&gt;
Metalinks can contain hashes (in several, extensible, formats) and also other information, like target platform, language and list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Maybe instead of specyfing only hashes in HTML, we should encourage adoption of metalink?&lt;br /&gt;
&lt;br /&gt;
[[User:KornelLesinski|KornelLesinski]] 09:59, 24 April 2007 (UTC)&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Layout_tables&amp;diff=2218</id>
		<title>Talk:Layout tables</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Layout_tables&amp;diff=2218"/>
		<updated>2007-04-24T09:25:32Z</updated>

		<summary type="html">&lt;p&gt;KornelLesinski: New page: Most of the difficulty with CSS is caused by incomplete IE&amp;#039;s implementation (notably lack of &amp;lt;code&amp;gt;display:table-cell&amp;lt;/code&amp;gt;). Specyfing even more advanced table-like constructs won&amp;#039;t impr...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of the difficulty with CSS is caused by incomplete IE&#039;s implementation (notably lack of &amp;lt;code&amp;gt;display:table-cell&amp;lt;/code&amp;gt;). Specyfing even more advanced table-like constructs won&#039;t improve IE6&#039;s implementation a bit.&lt;br /&gt;
&lt;br /&gt;
And of course there&#039;s no reason to tie this layout to particular element names, so this proposal belongs to CSS and is out of scope of HTML.&lt;/div&gt;</summary>
		<author><name>KornelLesinski</name></author>
	</entry>
</feed>