Richards werd geboren in Swansea. Hij speelde in de jeugd voor Cardiff City en Swansea City. Op 15 augustus 2009 maakte hij in het shirt van laatstgenoemde club zijn profdebuut, in de Championship tegen Middlesbrough.[2]
Op 15 oktober 2011 debuteerde de Welshman in de Premier League. Swansea verhuurde Richards in januari 2013 voor zes maanden aan Crystal Palace. Hij hielp de club aan promotie naar de Premier League. Op 28 maart 2013 ondertekende hij een contractverlenging tot medio 2016. Swansea verhuurde Rcihards in september 2013 voor drie maanden aan Huddersfield Town. Op 25 januari 2015 volgde een verhuur van één maand aan Fulham. Richards tekende in juli 2015 een definitief contract tot medio 2018 bij Fulham, de nummer zeventien van de Championship in het voorgaande seizoen. In zijn verbintenis werd een optie voor nog een seizoen opgenomen.[3]
Op 27 mei 2012 debuteerde Richards voor Wales in de vriendschappelijke interland tegen Mexico. Hij mocht na 80 minuten invallen voor Neil Taylor, zijn teamgenoot bij Swansea City.[4] Met Wales nam Richards deel aan het Europees kampioenschap voetbal 2016 in Frankrijk. Wales werd in de halve finale uitgeschakeld door Portugal (0–2), na in de eerdere twee knock-outwedstrijden Noord-Ierland (1–0) en België (3–1) te hebben verslagen.