<!doctype html>
<title>Alert during drag with release over dialog</title>
<style>
  body > div {
    height: 200px;
    width: 200px;
    background-color: orange;
    display: inline-block;
  }
</style>
<script type="text/javascript">
window.onload = function () {
	var orange = document.getElementsByTagName('div')[0], blue = document.getElementsByTagName('div')[1], hasfired = false;
	orange.ondragstart = function (e) {
		e.dataTransfer.setData('text','PASS');
		e.dataTransfer.effectAllowed = 'all';
	};
	orange.ondrag = function (e) {
		if( hasfired ) { return; }
		hasfired = true;
		alert('Release the mouse over this dialog');
	};
};
</script>
<div draggable="true"></div>

<ol>
	<li>Drag the orange square downwards until the drag placeholder appears.</li>
	<li>An alert may appear - release the mouse over the dialog. Dismiss it (you may need to use keyboard or mouse gestures such as gesture-down,gesture-right). If it does not appear, release the drag.</li>
	<li>The mouse cursor may continue to show that a drag is in operation. If so, attempt to select some of this text with the mouse before continuing to the text step.</li>
	<li>Fail if the mouse continues to show that a drag is in operation.</li>
	<li>Try to select some text in this sentence. Fail if it is not possible.</li>
	<li>Try to drag the orange square downwards again. Fail if that is not possible.</li>
</ol>