A versatile player, who is also capable of playing at left-back and as a midfielder, Richards began his professional career at his hometown club Swansea City, having previously played youth football for their local rivals Cardiff City, making 51 appearances for the club in all competitions during a six-year spell with the first-team. During his time with the Swans, he spent time on loan with Crystal Palace, Huddersfield Town and Fulham, before joining the latter for an undisclosed fee in 2015. In 2016, he returned to Cardiff City. Richards made his full international debut for Wales in 2012, and represented the nation at UEFA Euro 2016. To date, he has won 13 caps for his country.
Born in Swansea, Wales, Richards was a product of local schools football before joining the Cardiff City Academy but was released after two seasons, going on to join the Academy at their South Wales rivals Swansea City at the age of fifteen. Richards initially started out as a midfielder but changed to a defender, a position he continues to play today, by then-manager Roberto Martínez, due to the increased competitiveness of midfielders in the first team at the time, earning £60 a week while on a scholarship with the Swans.
After spending two seasons at the academy and reserve sides, Richards made his professional debut for Swansea in an Championship match against Middlesbrough during a 3–0 loss on 15 August 2009, replacing Shaun MacDonald as a substitute in the 63rd minute. At the end of the 2009–10 season, during which Richards made 15 appearances, he signed a new two-year deal with Swansea City.
The start of the 2010–11 season saw Richards spend the opening six months as an unused substitute or in the reserve side, not making his first appearance of the season until 3 January 2011 during a 2–1 defeat against Leicester City. It came after when Swansea City began to have defensive crisis following the players' injuries. Throughout January and February, Richards was given a handful of first team opportunities until he lost his first team place for the remainder of the season following the return of Àngel Rangel. Though he finished the 2010–11 season, making eight appearances, Swansea went on become the first Welsh team ever to gain promotion to the Premier League.
After appearing on the substitute bench for several matches at the start of the season, Richards made his Premier League debut, where he came on as a substitute for Neil Taylor in the 74th minutes, in a 3–1 win over Norwich City on 15 October 2011. Twelve days later, he was rewarded with a new 18-month contract. Richards then made his first start for the club, playing in the right-back position, in a 4–2 loss against Blackburn Rovers on 3 December 2011. As the 2011–12 season progressed, Richards was sent to play in the reserves for the rest of the season, in which he stated he didn't mind playing in the reserve because he wanted to regain his fitness. Despite this, Richards finished the 2011–12 season, making 8 appearances.
However, in the 2012–13 season, Richards struggled to compete in the first team with Rangel over the right-back position. Because of this, Richards wanted to leave the club on loan to gain first team football and it wasn't until on 25 January 2013, he joined Crystal Palace on loan until the end of the season. Richards made his debut for the club five days later, on 30 January 2013 in a 1–0 loss against Huddersfield Town. In the next match, on 2 February 2013, Richards provided an assist for Glenn Murray to score the brace and it turned out to be a winning goal, as they beat rivals, Charlton Athletic. This was followed up in the next match on 8 February 2013 against Watford when Richards provided assist again for Kevin Phillips to score an equaliser, in a 2–2 draw. While on loan, it was announced on 28 March, Richards signed a new contract with Swansea City until June 2016. Richards went on to make 11 appearances and appeared as an unused substitute in the Championship play-off final, as they beat Watford 1–0 to achieve promotion to the Premier League.
In the 2013–14 season, Richards made his first appearance of the season, where he made his first start of the season, in the second leg of the Europa League Qualifers, in a 0–0 draw against Malmö to send through to the next round after Swansea City beat them 4–0 in the first leg. On 10 September 2013, Richards joined Championship side Huddersfield Town on a 93-day emergency loan. After not being able to get international clearance from FIFA in time to play against Doncaster Rovers on 14 September, he made his Town début as a substitute in the 2–1 win over Charlton Athletic on 17 September 2013. His loan spell ended on 17 December, after 9 appearances for the Terriers. Following his return from a loan spell, Richards didn't make his first appearance until on 16 February 2014 when he made appeared in the first team, playing 90 minutes, in a 3–1 loss against Everton in the last-16 of the FA Cup.
In the 2014–15 season, Richards made his first appearance of the season, where he made his first start of the season, in the first round of the League Cup, in a 1–0 win over Rotherham United on 26 August 2014. Richards made his first Premier League appearance in two years, where he came on as a substitute in the 82nd minutes, in a 0–0 draw against Sunderland on 27 September 2014. Following this, Richards was a handful of first team appearances throughout 2014 despite struggling to compete with Rangel and his own injury concern. In a 2–1 loss match against Tottenham Hotspur on 14 December 2014, Richards was at fault when he made an error, leading to Christian Eriksen scoring the winning goal. After the match, Richards made an apology to Swansea City supporters for his error. Though he apologised, Richards, however, became a victim of abuse via Twitter by Swansea City supporters. Weeks later in the third round of FA Cup on 3 January 2015, Richards set up a goal for Bafétimbi Gomis to score his second goal of the match, in a 6–2 win over Tranmere Rovers. Following his return from a loan spell at Fulham, Richards made a handful of first team appearance towards the end of the season when he came on as a substitute in the 60th minutes, in a 1–0 win over Arsenal, followed up by providing an assist for Gomis, in a 4–2 loss against Manchester City. Richards later finished the 2014–15 season, making 13 appearances in all competitions.
On 24 January 2015, Richards joined Football League Championship side Fulham on a one-month loan. Richards made his Fulham debut on 31 January 2015, where he made his first start, in a 2–1 loss against Blackburn Rovers. Having 5 appearances so far, Richards had his loan spell with Fulham extended until the end of the season. Richards went on to make 14 appearances for the Cottagers.
Having previously stated his future at Swansea City continued to be in doubt, Fulham had their bid accepted for Richards to sign him permanently, with Richards, himself, stated the move could happen. With the move appeared to be stalling, the move, however, was confirmed on 2 July 2015, signing a three-year deal with the option of a fourth, for an undisclosed fee.
Richards' first match after signing for the club on a permanent basis came in the opening match of the season, in a 1–1 draw against Cardiff City. Richards then set up a goal for Lasse Vigen Christensen, in a 3–2 loss against Wolverhampton Wanderers on 12 January 2016. However, Richards' season was soon marked with injuries. Despite this, Richards' finished his first full season at Fulham, making 22 appearances.
However, ahead of the 2016–17 season, Richards was expected to lose his first team place at Fulham, with Manager Slaviša Jokanović prefer Ryan Fredericks in the right-back position. As a result, Fulham accepted a bid from Cardiff City for Richards.
On 19 July 2016, Richards joined Championship club Cardiff City on a three-year-deal in a swap move which saw Scott Malone join Fulham. Upon joining the club, Wales Online believed Cardiff City signing Richards can help him fit in the starting eleven at the club.
He made his debut in a goalless draw at Birmingham City, where he became embroiled in controversy after reportedly refusing to do Cardiff's traditional ayatollah gesture several times at the match. Richards suffered a training injury in September, keeping him out for 3 months, making his return on 2 January, as unused substitute against Aston Villa.
Richards represented Wales under-17 and Wales under-19. He was called up to the under-21 squad to face Luxembourg in March 2009.
On 27 May 2012, he gained his first full international cap for Wales in their 2–0 friendly loss to Mexico in New Jersey, replacing Neil Taylor for the last ten minutes.
Wales qualified for Euro 2016 and Richards was called up into the final 23 squad. He played his only game in the tournament in the opening game against Slovakia, Wales reached the semi-finals losing out to Portugal.As of 21 August 2017
Richards' family come from a sporting background, with his cousin, Eli Walker, is a rugby union player, and Tobias Webb, is a super-middleweight champion boxer.