Williams, who was wearing a yellow swimsuit in the 'selfie', quickly deleted the post but later confirmed her pregnancy via her publicist after frenzied speculation.
Serena Williams gets engaged to Reddit co-founder Ohanian
She told the TED conference in Vancouver that the photo was intended only for her personal records.
"I have this thing where I've been checking my status and taking pictures every week to see how far along I'm getting," the 35-year-old said in an on-stage chat with journalist Gayle King.
"I was just saving them (for myself)" said Williams. "I've been so good about it, but this was the one time it slipped."
Williams said she had found out she was pregnant only two days before the Australian Open in January, which she went on to win for her 23rd grand slam title.
"It wasn't very easy. You hear all these stories about people when they're pregnant — they get sick, they get really tired, really stressed out," she said.
"I had to really take all that energy and put it in a paper bag, so to say, and throw it away.
"Pregnant or not, no one knew and I was supposed to win that tournament. Every time I play, I'm expected to win. If I don't win, it's actually much bigger news."
Williams sisters set up dream Australian Open final
Williams, who is taking maternity leave for the rest of the 2017 season, said there was no change to her plan to return to the tour as a mother next year.
"I definitely plan on coming back. I'm not done yet," said Williams, who credited her 36-year-old sister Venus, a seven-time grand slam champion, for inspiration.
"If she's still playing, I know I can play.
"This (motherhood) is just a new part of my life. My baby's going to be in the stands and hopefully cheering for me."
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ