       this.updateValue e._d
 
   handleKeyDown: (e) ->
-    @handleChange(e) # updates any autocomplete values
+    # store the fact that the user is pressing another key
+    keys = @state.pressed_keys
+    keys[e.keyCode] = true
+    @setState
+      pressed_keys: keys
+
+    # if the user has pressed CTRL+a or COMMAND+a focus the input
+    # COMMAND = 91
+    # CTRL = 17
+    # a = 65
+    if (@state.pressed_keys[91] and @state.pressed_keys[65]) ||
+       (@state.pressed_keys[17] and @state.pressed_keys[65])
+      e.target.select()
+      e.preventDefault()
+      e.stopPropagation()
+
+    # only set state if we're not selecting the input values
+    else
+      @handleChange(e) # updates any autocomplete values
 
     if (! @state.autocompleting && [13].indexOf(e.keyCode) >= 0) && !e.shiftKey# ENTER
       @commitAnnotation()

      the_text = the_text.concat("/n")
      text_area.val(the_text)

  handleBadMark: ()->
    newAnnotation = []
    newAnnotation["low_quality_subject"]

    annotation: @props.annotation ? {}
    viewerSize: @props.viewerSize
    autocompleting: false
    pressed_keys: {}

    # The selectedDate attribute of the DatePicker component will store the
    # currently selected date. This object must be of type moment() or blank.
