My wife had the check engine light and the "VSC" light come on at the same time. Doing a little research, some have said to check the gas cap. Did that and lights still on. So I then disconnected the battery, which worked. Although, after driving about 20 miles, lights came back on. Any ideas why?
That "fix" shows up too often across the web without an understanding of the CEL.
The CEL comes on when any of several fault codes are present. Yes, some of those have to do with the EVAP system, which could come down to the gas cap, but chances are it's not. This oversimplification is why they call it an "idiot light" (not that you're an idiot).
Bottom line is, you need to have the codes read. Most lower-end (fight me) auto parts stores such as AutoZone or O'reilly's will read the codes for you, get the list and post them back here with the definitions (Google them) and we can help you further.
Disconnecting the battery on most cars will reset the codespace, so the fault codes will disappear until the test regimen detects the offending conditions again.
One last note: the VSC light. A lot of codes that illuminate the CEL, specifically those that have to do with issues that may affect engine power output, will also disable VSC (traction control). This is because Toyotas of this era with engines equipped with ACIS (Acoustic Control Induction System, Toyota's trademark for variable-length intake) modulate engine power output with said system as part of the traction control program. If the system can't accurately predict engine power output, then VSC won't perform to specifications, so it disables it. HTH