На самом деле, в зависимости от направления выбора у вас есть начало и конец выбора по порядку или нет (обратный ход). Таким образом, создание диапазона с этими границами и проверка его разрушения дает необходимую информацию. (Реализация в javascript)
function selectionIsBackwards(){
var sel = window.getSelection();
let range = document.createRange();
range.setStart(sel.anchorNode, sel.anchorOffset);
range.setEnd(sel.focusNode, sel.focusOffset);
let backwards = range.collapsed;
range.detach();
return backwards;
}