A questão principal é que, tecnicamente, as letras não são nem consoantes nem vogais! Sons, sim, podem ser classificados desta forma!
Antigamente, o /l/ final passou a ser velarizado, o que significa que, de uma forma específica, ele foi indo para trás na boca, tornando-se um [ɫ]. Em Portugal, este som é assim até hoje, porém, no Brasil, este processo continuou e se tornou totalmente velarizado, um [w], mas que ainda é representado na escrita com a letra < l >. Então, em dialetos brasileiros (na grande maioria), a letra L representa uma semivogal.
Assim, uma transcrição fonética da palavra "leal" em grande parte dos dialetos europeu e brasileiros fica:
• Portugal: [liˈaɫ]
• Brasil: [leˈaw]