What would make even more sense is to progressively change the lights to give the driver a better sense of the timing.
For example, in 2s intervals:
Green -> Green + Yellow -> Yellow + Red -> Red
This way, you not only know from a glance how stale the yellow is, but also you get a better indication of the timing. When a light simply goes Green -> Yellow -> Red, you have no frame of reference from which to gauge how long it will stay yellow, especially since every light has different timing.
You could even go one further, using blinking lights:
Solid green -> Green + Yellow (yellow blinks 3 times), Yellow + Red (red blinks 3 times) -> Solid red
And to improve traffic startup, you could do the opposite (Red -> Red + Yellow -> Green), as is done in many European countries.
That could be dangerous and confusing, the sequence needs to be unambiguous. The way it works in those european countries is that red+yellow always anticipates the green light, and yellow on its own indicates an imminent red.
Where I live some traffic lights also have a blinking green that precedes the yellow.
We used to have a blinking green light at the end of interval, but unfortunately it was used as an "accelerate" signal, so it has now been removed. Thankfully I have not had a problem with going too late into yellow. Generally I follow the simple rule of stopping whenever I am behind another car and only going through when I am really close to the lights.
Drivers accelerate through yellow where I am from all the time. Even though going through yellow is not allowed and is legally the same as running a red. If you can stop in time you should, even if it means braking hard (unless it is unsafe, eg a risk of getting rear-ended).
A lot of crashes this past summer too, even a few pedestrians got killed, tourist season, ubers and taxis usually causing it by speeding through intersections on yellow and red.
In Austria the green light blinks four times before going to yellow. Having grown up there I was actually kind of surprized to find out that this is not the standard elsewhere.
I’ve been thinking for a long time that a blinking yellow would be revolutionary and simple.
They should make the yellow begin to blink when it’s x number is seconds from going red. Because as is you have little reference to how soon it will shift.
Something like that has been tried before, using a timer display. It was pretty disastrous because people accelerated to beat the red. I think this was in China, so perhaps in other countries it might work better if the driving culture was more cautious.
Timers on the red seem to work well though, giving people advance waning to prepare to go, get in gear etc. There is one near me that seems to help get the traffic moving through faster when the lights change.
For example, in 2s intervals:
Green -> Green + Yellow -> Yellow + Red -> Red
This way, you not only know from a glance how stale the yellow is, but also you get a better indication of the timing. When a light simply goes Green -> Yellow -> Red, you have no frame of reference from which to gauge how long it will stay yellow, especially since every light has different timing.
You could even go one further, using blinking lights:
Solid green -> Green + Yellow (yellow blinks 3 times), Yellow + Red (red blinks 3 times) -> Solid red
And to improve traffic startup, you could do the opposite (Red -> Red + Yellow -> Green), as is done in many European countries.