<!DOCTYPE html>
<html>
	<head>
		<title>Drag and drop with middle click</title>
		<style type="text/css">
div {
	width: 100px;
	height: 100px;
	background: orange;
	float: left;
}
div + div {
	background: blue;
}
div + div + div {
	background: fuchsia;
}
ol {
	clear: left;
}
		</style>
		<script type="text/javascript">
window.onload = function () {
	document.getElementsByTagName('div')[0].ondragstart = function (e) {
		e.dataTransfer.effectAllowed = 'copy';
		e.dataTransfer.setData('text','dummy text');
	};
};
		</script>
	</head>
	<body>
		<div draggable="true"></div>
		<div></div>
		<div></div>
		<noscript><p>Enable JavaScript and reload</p></noscript>
		<ol>
			<li>Drag the orange square over the blue square.</li>
			<li>Without releasing the drag, click the middle mouse button.</li>
			<li>If the platform's normal behaviour is to cancel a drag (eg. Windows and Unix+KDE), then the drag should be cancelled;<ul>
				<li>The drag placeholder should disappear, and the cursor should return to the normal mouse cursor.</li>
				<li>Move the mouse over the pink square and release the drag. The mouse cursor should remain the normal mouse cursor.</li>
			</ul></li>
			<li>If the platform's normal behaviour is not to cancel a drag (eg. Mac and Unix+Gnome), then the drag should not be cancelled;<ul>
				<li>The drag placeholder should not disappear, and the cursor should be the no-drop cursor.</li>
				<li>Move the mouse over the pink square and release the drag. The drag placeholder should disappear, and the cursor should return to the normal mouse cursor.</li>
			</ul></li>
			<li>Fail in either case if an inappropriate middle click function begins (eg. paste-and-go).</li>
		</ol>
	</body>
</html>