All-Star Game starters (except for starting pitchers and the National League's starting designated hitter) are chosen via fan vote, which is broken up into two periods (as of 2019).
After a 25-day Primary Round, the top three vote-getters at each position (top nine in the outfield) per league advance to the Starters Election. At that point, vote totals are reset, and fans have a 28-hour period to vote on starters from the list of finalists at each position.
Finalists who don't win the Starters Election at their position are not automatically added to All-Star rosters, so after the starters are selected by fans, the NL has 24 roster spots to fill, while the AL has 23.
Pitchers and position-player reserves
All of the pitchers and position-player reserves are chosen through a combination of player ballot selections and choices made by the Commissioner's Office.
There are 32 roster spots for each league, with 20 position players and 12 pitchers per side. The player ballots account for 16 players in the NL and 17 in the AL -- eight pitchers (five starters and three relievers), as well as one backup for each position (including DH in the AL). The Commissioner's Office is responsible for selecting eight NL players (four pitchers and four position players) and six AL players (four pitchers and two position players). At this stage, MLB must ensure that every club is represented by at least one All-Star selection.
If an elected starter is unable to play, the reserve who received the most votes on the player ballot at that particular position moves into the starting lineup. The roster replacement is chosen by the Commissioner's Office.
If a player-elected reserve position player must be replaced, the next in line on the player ballot becomes a reserve. Once the top three finishers on the player ballot at a given position are covered, then it becomes a selection by the Commissioner's Office.
The two teams are managed by the previous year's World Series skippers, and they make the decisions on batting orders and starting pitchers. The NL manager also chooses the starting DH for his league. Prior to 2011, the DH rule was used only if the game was being held in an AL park.
The All-Star Game fan voting process was overhauled in 2019. Previously, the top vote-getter at each position during a single voting period advanced straight to the All-Star starting lineup.
From 2002-18, the final roster spot in each league was determined by what was known as the Final Vote, with fans having a chance to choose from five players in each league.
A change made in 2017 resulted in All-Star skippers no longer having a say in selections, so there's no longer the potential for any perceived conflicts of interest.
Fans were able to select the starters for each league in each of the first two MLB All-Star Games (1933, 1934), and from 1947-1957. The two All-Star Game managers picked the teams from 1935-1946.
In 1957, Reds fans were accused of stuffing the ballot box, with seven Cincinnati players being voted to start the All-Star Game. In response, Commissioner Ford C. Frick replaced Gus Bell and Wally Post with Willie Mays and Hank Aaron. Frick also eliminated fan balloting, with players, managers and coaches selecting the All-Star rosters from 1958-1969. Fan balloting was restored in 1970.