Prefix normal words arise in the context of binary jumbled pattern matching. A binary word \$w\$ consisting of \$0\$s and \$1\$s is said to be prefix normal * if, among all of its substrings, none contains more \$1\$s than the prefix of \$w\$ of the same length does. In other words, if \$w\$ contains \$n\$ \$1\$s then it is prefix normal if, for all \$m\le n\$, the shortest (or equal shortest) substring containing \$m\$ \$1\$s is a prefix.
For example, \$w=\color{red}{11010}\color{blue}{11011}00100\$ is not prefix normal because it has a substring of length 5 (highlighted in blue) that contains four \$1\$s, whereas its prefix of length 5 (red) only contains three \$1\$s. If we flip the first \$0\$ to \$1\$, however, then the resulting word (\$111101101100100\$) is prefix normal.
Task
Your task in this code-golf challenge is to write a program or function that decides whether a binary word is prefix normal.
You may take input in any sensible format (e.g. string, numeric, list of characters/digits), which extends to using any pair of characters/digits instead of \$0\$ and \$1\$ if you wish.
Output/return a consistent value for every input that is prefix normal and another consistent value for every input that is not.
Test cases
Prefix normal
00000
1101010110
111101101100100
11101010110110011000
1110010110100111001000011
Not prefix normal
00001
1011011000
110101101100100
11010100001100001101
1110100100110101010010111
* Strictly, prefix normal with respect to \$1\$.