Does anyone know which browsers support IPv6 link-local addresses?
The answer might depend on a few more details than just which browser you use.
Because the link local prefix is the same on all network segments, the address may need to explicitly specify an interface. For example to access fe80::1 through eth0, you may have to write the IP address as fe80::1%eth0. However this introduces another possibility for misunderstandings, because it is not immediately obvious, if the % character is supposed to be URL encoded or not.
I tested the following formats in one version of Chromium
http://[fe80::1]/
http://[fe80::1%eth0]/
http://[fe80::1%25eth0]/
The first format appeared to be supported by the browser, but was rejected by the kernel due to missing identifier specification. The other two formats did not work at all, it seems the browser didn't even try to load them, so I guess it just doesn't support either format. I have no idea if that means Chromium expects another format, than what I tried, or that it does not properly support link local addresses.
I have used link local addresses in a Firefox version dating about three years back. But that was on a computer with only one active network interface, which may have helped. Putting a link local address in a AAAA record is not considered good practice, but it might just work, if you only have one interface active - that is. There is no ambiguity about the format in that case, but specifying a network interface is not possible.
My personal opinion on how this problem should be solved is, that if an application try to connect to a link local address without explicitly specifying an interface, then the default behaviour of the kernel should be to perform neighbor discovery on all interfaces, unless it already know an interface, which can be used to reach that IP address.