Allow the demo to describe non-visible selections

Some selections may have no visible text, but still contain valid ranges
of text content. So long as the implementation works on text content
rather than the inner text algorithm, allow describing these selections.
diff --git a/demo/index.js b/demo/index.js
index 7996023..06f3e4d 100644
--- a/demo/index.js
+++ b/demo/index.js
@@ -117,9 +117,11 @@
 
 async function describeSelection() {
   const selection = document.getSelection();
-  if (selection.isCollapsed) return;
+  if (selection.type !== 'Range') return;
 
   const range = selection.getRangeAt(0);
+  if (range.collapsed) return;
+
   const scope = document.createRange();
   scope.selectNodeContents(selectable);