Bash read with -p option

I have this simple code to stop script execution.

I did not invent it, and it works.
It used to have fackEnterKey as option, but it works without it.

My curiosity question is -

the "function " terminates when "enter" key is pressed and only "enter" key.

I did read the man and found no explanation why it works only with "enter" key.
I was looking for some kind of "default" setting and found none.

I also found the "description " of "-p" option hard to read - "coming from terminal" implies ( to me) no prompt display UNTIL something is physically (coming) entered on terminal. That is not the case, and makes perfect sense.

pause(){
  52 #"OUTPUT" redirected  
  53 read -p "Press [Enter] key to continue..." </dev/tty
  55 #fackEnterKey
  56 }






-p prompt
             Display prompt on standard error, 
             without a trailing newline, before attempting to read
             any input. The prompt is displayed only if input is 
             coming from a terminal.

It reads input from stderr - when you create a process you get three separate "connections" called stdin (0), stdout (1), stderr(2). They can be accessed by those numbers. They behave mostly like files, you can read and write any one of them.

Normally read gets input from the keyboard (or a pipe) via stdin. read -p [prompt] blocks (that means wait for input) on stderr. This means the terminal is waiting for the return keypress to come in stderr. No place else.
It won't read anything on stdin. And it expects a keypress to mean 'I am done so stop reading'

OK, but why it accepts only "enter" key to terminate?

what else would identify a line?
from man bash :

       read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
              One  line  is  read  from  the standard input, or from the file descriptor fd supplied as an argument to the -u option, split into words as
              described above under Word Splitting, and the first word is assigned to the first name, the second word to the second name, and so on.

Press any key:

read -rs -n1 -p "Press any key" < /dev/tty

Press q to quit from processing loop - non blocking

echo "Press q to quit"
while true
do
    read -rs -n1 -t 0.1 < /dev/tty
    [ "$REPLY" = "q" ] && break
    # ... your stuff here
done

Adding these options -rs -n1 "falls" thru the "Pause" function
without waiting for any key.
Which will be handy to "remove" all debugging "pause" later. Thanks