Except filenames can contain quotes as well as newlines, so it is
still not possible to parse the output of ls[1][2]. In fact, filenames can contain
any byte except for NUL (the terminator) and forward slash (the directory separator). Dealing with this reliably means using NUL separators everywhere, as in `find -print0`, `grep --null`, or any of a shedload of similar flags. Unfortunately POSIX doesn't seem to support any of these, and it's unlikely that NUL support will be universally available everywhere (let alone implemented using the same flags).
[1] https://mywiki.wooledge.org/ParsingLs
[2] https://unix.stackexchange.com/q/128985/3645